• 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

VPS Starter Arubacloud
0 głosów
2,235 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ź 686 wizyt
pytanie zadane 24 lipca 2018 w C i C++ przez Krutek Początkujący (330 p.)
0 głosów
3 odpowiedzi 364 wizyt
0 głosów
1 odpowiedź 966 wizyt
pytanie zadane 16 października 2017 w Java przez zygmunt Początkujący (310 p.)

93,024 zapytań

141,986 odpowiedzi

321,291 komentarzy

62,371 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

Wprowadzenie do ITsec, tom 2

Można już zamawiać tom 2 książki "Wprowadzenie do bezpieczeństwa IT" - będzie to około 650 stron wiedzy o ITsec (17 rozdziałów, 14 autorów, kolorowy druk).

Planowana premiera: 30.09.2024, zaś planowana wysyłka nastąpi w drugim tygodniu października 2024.

Warto preorderować, tym bardziej, iż mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy dodatkowe 15% zniżki! Dziękujemy zaprzyjaźnionej ekipie Sekuraka za kod dla naszej Społeczności!

...