Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W przypadku prototypu funkcji kompilator może kontynuować bez błędu, ale konsolidator nie może rozpoznać wywołania adresu, ponieważ nie ma zarezerwowanego kodu funkcji ani zmiennej przestrzeni. Ten błąd nie zostanie wyświetlony, dopóki nie utworzysz wywołania funkcji, którą musi rozwiązać konsolidator.
Przykład: wywoływanie funkcji niezdefiniowanej
Wywołanie funkcji w pliku głównym spowoduje LNK2019, ponieważ prototyp pozwala kompilatorowi myśleć, że funkcja istnieje. Konsolidator stwierdza, że nie.
// LNK2019_MFBV.cpp
// LNK2019 expected
void DoSomething(void);
int main() {
DoSomething();
}
Przykład: wywoływanie funkcji implementowanych
W języku C++upewnij się, że uwzględnisz implementację określonej funkcji dla klasy, a nie tylko prototyp w definicji klasy. Jeśli definiujesz klasę poza plikiem nagłówka, pamiętaj o dołączeniu nazwy klasy przed funkcją (Classname::memberfunction).
// LNK2019_MFBV_2.cpp
// LNK2019 expected
struct A {
static void Test();
};
// Should be void A::Test() {}
void Test() {}
int main() {
A AObject;
AObject.Test();
}