Sprawdzanie, czy funkcja istnieje
Ostatnio zmodyfikowano 2016-02-05 10:09
Nitr0Skay Temat założony przez niniejszego użytkownika |
Sprawdzanie, czy funkcja istnieje » 2016-02-05 06:47:21 Witam. Czy w C++ jest jakakolwiek możliwość sprawdzenia, czy funkcja istnieje ?? if( zadankoC() == NULL ) { cout << "Nie istnieje taka funkcja..." }
|
|
darko202 |
» 2016-02-05 07:47:43 to jest chyba jakieś nieporozumienie tzn. czegoś w tym pytaniu nie napisałeś bo ogólnie jest zasada, że jeśli cos jest nieznane to kompilator nie dopuści do stworzenia programu. czy można jakoś wywołać, używać w programie nieznany z nazwy obiekt ? tak można ! używamy wtedy wskaźników. w szczególności jest to wskaźnik na funkcję opis np. na http://cpp0x.pl/kursy/Kurs-C++/Poziom-X/Wskaznik-na-funkcje/249pierwszy raz czytałem o tym na stronie 163 i następnych książki Bruce.Eckel.-.Thinking.in.C++.Edycja.polska.Tom1 (jest to tam =moim zdaniem - dokładniej wytłumaczone) przy takim wskaźniku możemy mieć sytuację ,że wskaźnik jest pusty, można zatem to sprawdzać przed wywołaniem takiej funkcji. |
|
Monika90 |
» 2016-02-05 07:52:32 Jeżeli ta funkcja zależy od jakiegoś typu to tak. Przez zależy od typu rozumiem, że przyjmuje co najmniej jeden argument jakiegoś typu, albo jest składową klasy. Dla funkcji postaci void zadankoC(); prawdopodobnie się nie da tego zrobić. |
|
darko202 |
» 2016-02-05 08:01:41 @Monika90 nie rozumiem :(
|
|
Monika90 |
» 2016-02-05 08:15:15 W C++ da się sprawdzić w czasie kompilacji czy dla pewnego typu T da się wykonać pewną operację, np. czy da się wywołać funkcję f z argumentem typu T. I jeżeli się da to program tę operację wykona, a jeżeli się nie da to zrobi coś innego.
Jednak osiągnięcie tego jest raczej skomplikowane, więc odradzam iść w tym kierunku. |
|
darko202 |
» 2016-02-05 10:09:47 Przepraszam, ale nadal nie rozumiem :( Użyłeś odwołania do wyższego poziomu abstrakcji, której nie ogarniam.
kompilator nie znajdując obiektu zatrzymuje kompilację. może można jakoś zmusić kompilator, do stworzenia programu, ale z tym się nie spotkałem.
pytanie @Nitr0Skay "Czy w C++ jest jakakolwiek możliwość sprawdzenia, czy funkcja istnieje ??" niejasne kiedy, ale założyłem że w programie.
nie mówimy o jakimś szablonie funkcji, którą kompilator możne dopasować dobrze lub źle , ale z nazwy funkcja musi istnieć - tak mi się zdaje :(
wchodzi więc w grę chyba tylko wskaźnik do funkcji, który zachowuje się jak wskaźnik, czyli może istnieć konieczność sprawdzenia o którym pisze @Nitr0Skay
Czy mógłbyś doprecyzować Twoją odpowiedz ? |
|
« 1 » |