Um das ganze zu verstehen mache ich gerade mal ein kleines BSP was aber nicht so wirklich funtionierne will!
kannst du mir vielleicht helfen?
code meiner schreiben.cpp die ich nachher im main nutzen will
Code:
#include <iostream.h> // CPP, nicht C!
#include <stdio.h> // Wieso nun Standart Input/Output?
class schreiben{
private:
char vname[20];
char nname[20];
int punkte;
public:
void eingeben(); //public Elementfunktion
void anzeigen();
void mist(char h);
};
void schreiben::eingeben(){
cout <<"Vorname: ";
cin >> vname;
cout << "Namchname:";
cin >>nname;
cout <<"Gesamtpunkte";
cin>>punkte;
}
void schreiben::anzeigen(){
cout<<"\n"<<vname<<" "<< nname <<"\n";
cout<<"Punkte: " << punkte<<"\n";
cout<<"es hat geklappt";
}
void schreiben::mist(char h){
printf("%c",h);
}
so und jetzt die main, da kommt dann beim ausfürhen der exe folgenden meldung
-->erstmal code
Code:
#include <stdio.h> // Was denn nun, CPP oder C?
#include <string>
#include <stdlib.h> // cstdlib
#include <iostream>
#include "schreiben.cpp" // Du kannst nur Headerdateien einbinden
using namespace std;
void main(void){ // NIEMALS main als void vom Rückgabetyp deklarieren
schreiben schule1, schule2;
schule1.eingeben; // Du behandelst deine Funktion wie eine Variable
schule1.anzeigen; // Du behandelst deine Funktion wie eine Variable
schule2.eingeben; // Du behandelst deine Funktion wie eine Variable
//return 0; // Siehe oben!
}
Die Felhermeldung lautet: Linking...
schreiben.obj : error LNK2005: "public: void __thiscall schreiben::eingeben(void)" (?eingeben@schreiben@@QAEXXZ) already defined in main.obj
schreiben.obj : error LNK2005: "public: void __thiscall schreiben::anzeigen(void)" (?anzeigen@schreiben@@QAEXXZ) already defined in main.obj
schreiben.obj : error LNK2005: "public: void __thiscall schreiben::mist(char)" (?mist@schreiben@@QAEXD@Z) already defined in main.obj
Debug/main.exe : fatal error LNK1169: one or more multiply defined symbols found
Error executing link.exe.
Es lassen sich beiden cpp Datei Fehlerlos kompilieren aber beim ausführen der exe kommt das oben gezeigte!
Ich weis nicht wo dran das liegt! Kann mir das einer sagen
Besten Dank
PS: Kann das sein ddas ich die neue Klasse in eine Headerfile schreiben muss, weil dann funktioniert das ganze