000
15.05.2006, 18:27 Uhr
DragonShaolin
|
Hi,
ich muss wiedermal was für die UNI Programmieren, leider hab ich grad ein Problem bei Klassen, eher gesagt bei dem Konstruktor und Destruktor.
Erstmal die Aufgabenstellung: www.fbi.h-da.de/fileadmin/personal/j.arz/PG2/PG2-SS06-Aufgabe3.htm
Ich hab noch nicht viel programmiert, aber wollte es schonmal testen ob der Konstruktor oder Destruktor geht, leider bekomme ich diese Fehlermeldung hier.
1>xxx\frau.cpp(10) : error C2512: 'Mensch' : no appropriate default constructor available
Hier mein Code bis jetzt:
Frau.cpp
C++: |
#include <iostream> #include "frau.h" #include "mann.h" #include "mensch.h"
using namespace std;
Frau::Frau(char *n) {
name = new char(80); name = n;
}
Frau::~Frau(){}
|
frau.h
C++: |
#ifndef header_frau #define header_frau
#include "Mensch.h"
class Frau : public Mensch // Klasse Frau der Ausbaustufe 2 { public: Frau(char *); // Konstruktor, der den Namen des Menschen als String mitbringt virtual ~Frau( ); // Destruktor void kind (int, char *); // Erzeugung (= Geburt) des n-ten Kindes mit Namen void heirat(char *); // Heirat mit dem Mann mit dem mitgegebenen Namen void stirbtKind(int); // Tot des n-ten Kindes (n als int-Parameter) void stirbtEhemann(void); // Tot des Ehemanns void zeige(void); // Zeigt Ehemann und Kinder (soweit existieren) auf dem Bildschirm
protected: Mensch * ehemann; // Zeiger auf den Ehemann; 0, falls nicht vorhanden Mensch * kinder[10]; // Array von Zeigern auf die Kinder; 0, falls nicht vorhanden };
#endif
|
Mensch.h
C++: |
#ifndef header_mensch #define header_mensch
class Mensch // Klasse Mensch der Ausbaustufe 2 { public: char * getName( ); // Returnt einen Zeiger auf den Namen Mensch(char *); // Konstruktor, der den Namen als String mitbringt virtual ~Mensch( ); // Destruktor
protected: char *name;//[80]; // Der Name (Vor- und Zuname eines Menschen) als String };
#endif
|
main.cpp
C++: |
#include <iostream> #include "frau.h" #include "mann.h" #include "mensch.h"
using namespace std;
void main() {
}
|
in den anderen Files steht noch nichts drinnen, daher brauche ich sie auch nicht zu posten.
Woran liegt jetzt der fehler, ich dachte man kann so den konstruktor aufrufen?
Besten Dank.
VLG, Cyrill |