C++ Klassendefinitionsproblem

Pomplito

Grünschnabel
Hallo ich habe mit Visual C++ 6 ein Problem beim Klassenerstellen.

Ich habe folgende 3 Dateien:

CTest.cpp
Code:
class CTest
{
public:
	void haha()
	{
		int i;
		for (i=0;i<=256;i++)
		{
			// Test...
		}
	}

};

CTest.h
Code:
#ifndef __CTEST__
#define __CTEST__

class CTEST
{
public:
	haha(void);
	// void haha(); <-- auch schon probiert...
	// void haha(void); <-- auch schon probiert...
};

#endif

und main.cpp
Code:
#include "CTest.h"
// .... alles was man halt so braucht!
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
	CTest a;
	a.haha();
	// ...
}

Nun zu dem Problem! Das Kompilieren funktioniert, aber beim Linken kommt immer folgende Fehlermeldung:

c:\dokumente und einstellungen\eigene dateien\test\ctest.h(8) : warning C4091: 'extern ' : Ignoriert auf der linken Seite von 'class CTest', wenn keine Variable deklariert wurde
Linker-Vorgang läuft...
main.obj : error LNK2001: Nichtaufgeloestes externes Symbol "public: int __thiscall CTest::haha(void)" (?haha@CTest@@QAEHXZ)

<-- Nur finde ich in Tutorials keinerlei Hinweise dazu, die anderen scheinen das nämlich auch so zu machen! :(
Vielleicht kennt einer von euch das Problem! Danke! :rolleyes:
 
Code:
Header:

class CTest
{
public:
	void haha();
};

Cpp-Datei:

void CTest::haha()
{
 ...mach irgendwas
}

Aufruf:

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
	CTest a;
	a.haha();
	// ...
}
 
@Pomplito:

Noch eine Anmerkung: CTEST und CTest sind für den C++-Compiler zwei unterschiedliche Klassen, weil C und C++ Gross- und Kleinschreibung unterscheiden.

Ansonsten hat Dudadida dir ein gutes Beispiel gepostet.

Und nicht vergessen: Die .cpp-Dateien sollte man übrigens zum Projekt zufügen, damit sie auch kompiliert werden. Erwähne es nur, weil ich da am Anfang Probleme mit hatte.
 
java style

was du da geschrieben hast, ist java style, es ist inline methode, aber die inline methode soll nicht sehr gross sein (3-4 zeilen).
Die struktur von C++ ist besser so:
Header(nur Definitionen) + Implemenierung(Beschreibung der Methoden)+ Main(od extern Funktionen)
 
Zurück