Roman_1980
16-08-2004, 20:35
Hallo, hab mal wieder ein Problem und hoffe mal das einem C-lernenden Studenten jemand wieder aus der Patsche helfen kann...
Folgende Dateien sind vorhanden:
Main.cpp:
-----------------------
#include <iostream>
#include <stdlib.h>
using namespace std;
int main(int argc, char *argv[])
{
// Liste Objekte;
// Objekte.GegenstandvonDatei("E:\\Textadventure\\Gegenstand.txt");
// Objekte.AusgabeGegName();
system("PAUSE");
return 0;
}
--------------------------
Gegenstand.h:
-------------------------
#ifndef _GEGENSTAND_
#define _GEGENSTAND_
#include <iostream>
using namespace std;
class Gegenstand
{
private:
char *Name; //Name des Gegenstandes
char *Beschreibung; //Beschreibung (Kurztext)
unsigned int Nummer; //Nummer des Gegenstandes (so ne Art Index)
unsigned int Gewicht; //Gewicht in Gramm
int BeideHande; //Braucht das Objekt beide Hände? (0=nein, 1=ja)
int Einzigartig; //Darf das Objekt nur einmal im Spiel vorkommen?
//(0=nein, 1=ja, 2=ja, und wurde schon verwendet)
Gegenstand *next; //für verkette Liste
public:
Gegenstand() {this->next=NULL;}
Gegenstand(char *GegName,char *GegBeschreibung,int,int,int,int);
void GegNext(Gegenstand *NeuNext); //diese Funktion will er nicht, warum??
Gegendstand* HoleGegNext(void) {return this->next;}
char* AusgabeName(void) {return this->Name;}
char* AusgabeBeschreibung() {return this->Beschreibung;}
int AusgabeNummer() {return this->Nummer;}
int AusgabeGewicht() {return this->Gewicht;}
int AusgabeHand() {return this->BeideHande;}
int AusgabeArt() {return this->Einzigartig;}
}; //class Gegenstand
#endif
-------------------
Gegenstand.cpp:
-----------------------
#include "Gegenstand.h"
#include <string.h>
#include <iostream>
using namespace std;
Gegenstand::Gegenstand(char *GegName,char *GegBeschreibung,int NR,int Gew,int Hande,int Art)
{
this->Name=new char[strlen(GegName)+1];
strcpy(this->Name,GegName);
this->Beschreibung=new char[strlen(GegBeschreibung)+1];
strcpy(this->Beschreibung,GegBeschreibung);
this->Nummer=NR;
this->Gewicht=Gew;
this->BeideHande=Hande;
this->Einzigartig=Art;
this->next=NULL;
}//Gegenstand::Gegenstand
void Gegenstand::GegNext(Gegenstand *NeuNext)
{
this->next=NeuNext;
}//NextvonGegenstand
---------------------
Beim Kompilieren gibt er mir die Meldung "in File included from Gegenstand.cpp". Hab rausgefunden wenn ich die Funktion in Gegenstand.h auskommentiere (hab sie mit einem Kommentar versehen hinten) funktionierts. Was ist an dieser sch..önen Funktion bitte falsch und warum???
Bin für jede Hilfe dankbar...
Roman
Folgende Dateien sind vorhanden:
Main.cpp:
-----------------------
#include <iostream>
#include <stdlib.h>
using namespace std;
int main(int argc, char *argv[])
{
// Liste Objekte;
// Objekte.GegenstandvonDatei("E:\\Textadventure\\Gegenstand.txt");
// Objekte.AusgabeGegName();
system("PAUSE");
return 0;
}
--------------------------
Gegenstand.h:
-------------------------
#ifndef _GEGENSTAND_
#define _GEGENSTAND_
#include <iostream>
using namespace std;
class Gegenstand
{
private:
char *Name; //Name des Gegenstandes
char *Beschreibung; //Beschreibung (Kurztext)
unsigned int Nummer; //Nummer des Gegenstandes (so ne Art Index)
unsigned int Gewicht; //Gewicht in Gramm
int BeideHande; //Braucht das Objekt beide Hände? (0=nein, 1=ja)
int Einzigartig; //Darf das Objekt nur einmal im Spiel vorkommen?
//(0=nein, 1=ja, 2=ja, und wurde schon verwendet)
Gegenstand *next; //für verkette Liste
public:
Gegenstand() {this->next=NULL;}
Gegenstand(char *GegName,char *GegBeschreibung,int,int,int,int);
void GegNext(Gegenstand *NeuNext); //diese Funktion will er nicht, warum??
Gegendstand* HoleGegNext(void) {return this->next;}
char* AusgabeName(void) {return this->Name;}
char* AusgabeBeschreibung() {return this->Beschreibung;}
int AusgabeNummer() {return this->Nummer;}
int AusgabeGewicht() {return this->Gewicht;}
int AusgabeHand() {return this->BeideHande;}
int AusgabeArt() {return this->Einzigartig;}
}; //class Gegenstand
#endif
-------------------
Gegenstand.cpp:
-----------------------
#include "Gegenstand.h"
#include <string.h>
#include <iostream>
using namespace std;
Gegenstand::Gegenstand(char *GegName,char *GegBeschreibung,int NR,int Gew,int Hande,int Art)
{
this->Name=new char[strlen(GegName)+1];
strcpy(this->Name,GegName);
this->Beschreibung=new char[strlen(GegBeschreibung)+1];
strcpy(this->Beschreibung,GegBeschreibung);
this->Nummer=NR;
this->Gewicht=Gew;
this->BeideHande=Hande;
this->Einzigartig=Art;
this->next=NULL;
}//Gegenstand::Gegenstand
void Gegenstand::GegNext(Gegenstand *NeuNext)
{
this->next=NeuNext;
}//NextvonGegenstand
---------------------
Beim Kompilieren gibt er mir die Meldung "in File included from Gegenstand.cpp". Hab rausgefunden wenn ich die Funktion in Gegenstand.h auskommentiere (hab sie mit einem Kommentar versehen hinten) funktionierts. Was ist an dieser sch..önen Funktion bitte falsch und warum???
Bin für jede Hilfe dankbar...
Roman