Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Sprawdzanie, czy funkcja istnieje

Ostatnio zmodyfikowano 2016-02-05 10:09
Autor Wiadomość
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 ??

C/C++
if( zadankoC() == NULL ) {
    cout << "Nie istnieje taka funkcja..."
}
P-144478
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​/249

pierwszy 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.




P-144479
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ć.
P-144480
darko202
» 2016-02-05 08:01:41
@Monika90
nie rozumiem :(



P-144481
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.
P-144482
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 ?
P-144484
« 1 »
  Strona 1 z 1