[LINUX Ubuntu] Klassenzugriff

Erks

Erfahrenes Mitglied
Hi,
mal eine Frage:
ich wollte mal von dem komfortablen Visual Studio weg und mal versuchen unter LINUX Programme zu schreiben. Jetzt das Problem, wie kann ich auf Klassen zugreigen und wie gebe ich das dann in diesem "g++ ...." des Terminals an?

Hier mal mein Code (Den konnte ich ja auch nicht testen, ob der funktioniert...)

main.cpp
Code:
#include <iostream>
#include "test.h"

using namespace std;

int main(){
	Test t(2);
	cout << t.getZahl() << endl;
	return 0;
}

test.h
Code:
class Test{
	public:
		int z;
		Test(int a);
		~Test();
		int getZahl();
};

test.cpp
Code:
#include <iostream>
#include "test.h"

using namespace std;

Test::Test(int a){
		z = a;
}

int Test::getZahl(){
		return z;
}

Schon mal danke für die Hilfe;)
 
Danke für die Antwort, wusste nicht das das auch geht.

Aber wenn ich das jetzt eingebe, dann kommt folgendes Ergebnis:
Code:
thinkpad@ubuntu:~/Arbeitsfläche/test$ g++ test.cpp main.cpp -o program
/tmp/cczkDUA8.o: In function `main':
main.cpp:(.text+0x57): undefined reference to `Test::~Test()'
main.cpp:(.text+0x6f): undefined reference to `Test::~Test()'
collect2: ld returned 1 exit status
thinkpad@ubuntu:~/Arbeitsfläche/test$

Dem schmeck wohl Test nicht....
Muss man da noch etwas mit der test.h Datei machen? Verlinken oder macht der das automatisch?

EDIT:-(
Habs: Ich musst in der test.cpp nur noch den Destruktor mit angeben. Wenn ich den weglasse, dann gibt er diese Fehlermeldung aus. Danke!

Aber zu meiner anderen Frage mit den *.h Dateien: Werden die automatisch verlinkt, oder muss man da noch selbst Hand anlegen?
 
Zuletzt bearbeitet:
Aber zu meiner anderen Frage mit den *.h Dateien: Werden die automatisch verlinkt, oder muss man da noch selbst Hand anlegen?
Die #include Direktiven werden vom Präprozessor verarbeitet bevor der C++ Compiler überhaupt loslegt. Mit "g++ -E test.cpp" siehst du was der C++ Compiler wirklich verarbeitet.

D.h. die Headerdateien sind für den C++ Compiler eigentlich gar nicht vorhanden.

Gruß
 
Zurück