Inline, oraz plik nagłówkowy
Ostatnio zmodyfikowano 2015-11-03 18:42
Masmix Temat założony przez niniejszego użytkownika |
Inline, oraz plik nagłówkowy » 2015-11-03 16:08:02 Witam,
borykam się z problemem jakim jest inline, a mianowicie posiadam 3 pliki w projekcie: main.cpp, funkcje.cpp, oraz Naglowek.hpp. W pliku main.cpp posiadam część programu jakim jest dodawanie:
int main { double a,b; cout << "Podaj pierwsza liczbe" << endl; cin >> a; cout << "Podaj druga liczbe " << endl; cin >> b; cout << "Wynik dodawania " << a << " i " << b << " to " << dodawanie(a,b) << endl; // Tutaj wyskakuje ten error }
W pliku funkcje.cpp posiadam funkcję dodawanie :
inline double dodawanie(double a, double b) { return a+b; } A w pliku Naglowek.hpp wypisaną funkcję dodawania :
inline double dodawanie(double a, double b)
I przechodząc do sedna, w trakcie kompilacji pojawia się błąd:
"Undefined reference to 'dodawanie(double, double)' used but never defined [enabled by default].
Jednak gdy usunę w drugim i trzecim pliku inline to wszystko działa jak natura chciała. Zdążyłem się domyślić, że trzeba coś zdefiniować, ale niestety nie mam pojęcia co, gdzie i jak. Czy dobrze się domyślam? Jeżeli tak to bardzo proszę powiedzieć jak mam to zrobić. Z góry dziękuję ! |
|
1aam2am1 |
» 2015-11-03 16:40:50 Funkcje inline powinny być w pliku .h według mojej wiedzy bo pliki cpp są kompilowane a dopiero potem linkowane. Funkcje inline są w całości w miejscu wywołania więc nie mogą być linkowane. Więc występuje błąd. |
|
Masmix Temat założony przez niniejszego użytkownika |
» 2015-11-03 17:03:58 Dobrze zrozumiałem, aby przenieść funkcję dodawanie z pliku .cpp, do pliku .h ? |
|
pekfos |
» 2015-11-03 18:42:50 Dobrze zrozumiałem, aby przenieść funkcję dodawanie z pliku .cpp, do pliku .h ? |
Tak. Lepiej było poczekać na odpowiedź ponad 1.5 godziny zamiast samemu sprawdzić..? |
|
« 1 » |