• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Skorzystanie z metody z innej klasy w metodzie

Object Storage Arubacloud
0 głosów
2,122 wizyt
pytanie zadane 22 kwietnia 2018 w C i C++ przez siemasiema123.96 Początkujący (350 p.)
class load
{
public:
    int showMenu();  
};

class operationOnFiles :public load
{
public:
    void showText();
};


int load::showMenu() //menu
{
    operationOnFiles::showText();   //tu wywala błąd
    ...
}

Chcę wywołać metodę showText z innej klasy w metodzie showMenu. Powie mi ktoś czemu wywala mi błąd przy czymś takim? Kod metod jest zapisany poza klasami. 

1 odpowiedź

+1 głos
odpowiedź 22 kwietnia 2018 przez RafalS VIP (122,820 p.)
Wywołanie Klasa::metoda() działa tylko dla metod statycznych, czyli takich które należą do całej klasy a nie konkretnego obiektu. U Ciebie to nie działa, bo metody są zwykłe tzn wywołuje się je na konkretnym obiekcie (obiekt.metoda()) a nie na całej klasie (Klasa::metoda()).
komentarz 22 kwietnia 2018 przez RafalS VIP (122,820 p.)
PS To czy implementacja będzie wewnątrz klasy czy na zewnątrz nie ma znaczenia na widoczność i zasięg metody. Co więcej nie ma to prawie żadnego znaczenia. Z tego co pamiętam jedyna różnica jest taka, że metody definiowane w ciele klasy są automatycznie inline (sugerujesz kompilatorowi, żeby przekleił kod funkcji zamiast normalnego wywołania, które wiążę się z malutkim dodatkowym nakładem czasowym, które jest zbędne gdy funkcja ma 1 linijke, czego kompilator notabene nie musi zrobić jeśli uzna to za bezsensowne).
komentarz 22 kwietnia 2018 przez niezalogowany

Wywołanie Klasa::metoda() działa tylko dla metod statycznych

Również można tak wywoływać metody wewnątrz innej metody w tej samej klasie, a także metody rodziców u dziecka (o ile sposób dziedziczenia na to pozwala), ale nie odwrotnie jak wyżej zostało to zrobione.

komentarz 22 kwietnia 2018 przez siemasiema123.96 Początkujący (350 p.)

@RafalS, Dziękuję bardzo za pomoc ;)

Podobne pytania

0 głosów
1 odpowiedź 654 wizyt
pytanie zadane 24 lipca 2018 w C i C++ przez Krutek Początkujący (330 p.)
0 głosów
3 odpowiedzi 271 wizyt
0 głosów
1 odpowiedź 838 wizyt
pytanie zadane 16 października 2017 w Java przez zygmunt Początkujący (310 p.)

92,572 zapytań

141,422 odpowiedzi

319,645 komentarzy

61,959 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...