Problem mit Klassen weitere merkwürdige Fehler

Hallo,
da mein letztes Problem rasch gekärt wurde, habe ich mich nun weiter drann gesetzt und versuche diesmal alle klassen auszuglieder (in eine weitere cpp datei) und das hauptprgramm (ebenfall in einer extra datei) alles ausführen zu lassen.
allerdings komm ich mit den fehlermeldungen nicht klar.

es sind 2 dateien. allerdings bin ich mir ziemlich sicher das das problem in der datei liegt in der auch die klassen definiert sind.
hier ist sie:

#include 
#include 
#include 
#include 
#include 

using namespace std;

class Kunde{
private:
 char Anrede[5];
 char vname[20];
 char nname[20];
 double echte\_kontonummer;
 int echte\_pin;
 int Guthaben;
public:
 void eingabe();
 void abfrage();
 void einzahlen();
};

void Kunde::eingabe(){
 system("cls");
 Guthaben=0.0;
 cout \> Anrede;
 cout \> vname;
 cout \> nname;
 cout \> echte\_kontonummer;
 cout \> echte\_pin;
 cout \> eingabe\_kontonummer;
 cout \> eingabe\_pin;

 if(eingabe\_kontonummer==echte\_kontonummer && eingabe\_pin==echte\_pin){
 cout \> einzahlung;
 Guthaben=Guthaben+einzahlung;
 cout 

Die fehlermeldungen sehen wie folgt aus:


Fehler 3 
error LNK2005: "public: void \_\_thiscall Kunde::eingabe(void)" (?eingabe@Kunde@@QAEXXZ) ist bereits in klassen.obj definiert. 

C:\Users\Tim\Documents\Visual Studio 2010\Projects\kalssnne\kalssnne\main.obj



Fehler 4 
error LNK2005: "public: void \_\_thiscall Kunde::abfrage(void)" (?abfrage@Kunde@@QAEXXZ) ist bereits in klassen.obj definiert.

C:\Users\Tim\Documents\Visual Studio 2010\Projects\kalssnne\kalssnne\main.obj


Fehler 5 
error LNK2005: "public: void \_\_thiscall Kunde::einzahlen(void)" (?einzahlen@Kunde@@QAEXXZ) ist bereits in klassen.obj definiert. 

C:\Users\Tim\Documents\Visual Studio 2010\Projects\kalssnne\kalssnne\main.obj


Fehler 6 
error LNK1169: Mindestens ein mehrfach definiertes Symbol gefunden. 

C:\Users\Tim\Documents\Visual Studio 2010\Projects\kalssnne\Debug\kalssnne.exe 1

die letze ist logisch :smiley:
aber aus den anderen werde ich einfach nicht schlau.

zur sicherheit die main.cpp hier noch einmal (auf externer seite)

http://pastebin.com/aFivDcND

und weils so schön aussieht die klassen.cpp auf selber seite

http://pastebin.com/5VpMrz2e

PS.: die IDE heißt übrigens microsoft Visual Studio 2010
  1. Kein goto benutzen
  2. Deklaration der Klasse in eine Headerdatei und die Definition in die cpp
  3. Man includet keine cpp’s, nur Headerdateien (Ergibt sich aus 2.).

Ich habs grad nur überflogen. Wenn du unbedingt die Funktionen in der selben Datei definieren willst, dann mach es so:

class A {
public:
void bla(){}
};

und nicht so

class A {
};

void A::bla(){}

Howdy,

das Ganze sieht von der Fehlermeldung so aus (ohne dass ich mir jetzt die Zeit genommen habe, die Codes anzuschauen), dass sowohl in main.cpp als auch in klassen.cpp (sofern es sie denn gibt) ein Header File mit einer Nicht-Inline Implementierung inkludiert wird. Daraus ergibt sich, dass diese Implementierung sowohl in klassen.obj wie auch in main.obj vorhanden ist, also „bereits definiert“ wurde.

Fehler 3
error LNK2005: „public: void __thiscall Kunde::eingabe(void)“
(?eingabe@Kunde@@QAEXXZ) ist bereits in klassen.obj
definiert.

C:\Users\Tim\Documents\Visual Studio
2010\Projects\kalssnne\kalssnne\main.obj

Im Normalfall sollte das so aussehen

class X
{
public:
 void eingabe();
};

im Headerfile (X.h) und

#include "X.h"
void X::eingabe()
{
}

im cpp File (X.cpp).

Gruss
norsemanna

eigentlich wollte ich alles was die klassen und deren funktion angeht in eine datei schieben und den rest in eine andere (die hauptdatei) von der aus dann die funktionen aufgerufen wurden.

nun habe ich das so gelöst das ich 3 dateien habe in der einen header datei habe ich die klasse definiert in der 2. die funktionen und in der 3 datei die dann wieder eine cpp datei ist habe ich den rest vom programm.

danke soweit :smiley:

gruß
tim

Moin moin,

eigentlich wollte ich alles was die klassen und deren funktion
angeht in eine datei schieben und den rest in eine andere (die
hauptdatei) von der aus dann die funktionen aufgerufen wurden.

Hast du Dir das alles selber beigebracht ?
Dann empfhele ich mal eine gute Lektüre zum Thema C++, denn es gibt da Vorgaben.
Solltest du mal mit anderen Zusammenarbeiten werden die sich dann auch nicht über deinen Eigensinn wundern.