ich ein Problem habe, wenn eine Klasse in einer separaten Objektdatei deklariert und dann in der Hauptfunktion einer anderen Datei mit:C++ Problem mit Klasse in einer separaten Objektdatei erklärte
main.cpp:
#include <helloclass.hpp>
using namespace std;
int main() {
Hello hi;
hi.hello();
return 0;
}
helloclass.cpp:
#include <iostream>
using namespace std;
class Hello {
public:
void hello() {
cout << "Hello world\n";
}
Hello() {}
};
helloclass.hpp:
class Hello {
public:
void hello();
Hello();
};
Dann lief ich die folgenden Befehle:
g++ -I. -c main.cpp
g++ -c helloclass.cpp
g++ -o main main.o helloclass.o
jedoch der letzte Befehl gibt die folgende Ausgabe:
main.o: In function `main':
main.cpp:(.text+0x1f): undefined reference to `Hello::Hello()'
main.cpp:(.text+0x2b): undefined reference to `Hello::hello()'
collect2: error: ld returned 1 exit status
Für mich scheint es, wie ich etwas ziemlich offensichtlich fehlt bin. Kann jemand das beheben?
Sie sollten nicht versuchen, in C++ durch Versuch und Irrtum zu programmieren. Du solltest ein [gutes Buch] bekommen (https://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list) – Rakete1111
danke, aber ich habe schon eins. – asc11