Hallo
bin grad beim Listing 7.6 'Überladene Konstruktoren'. Einfach erstmal der Code:
|
C-/C++-Quelltext
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
|
#include <iostream>
using namespace std;
class CRaumschiff
{
private:
int m_xpos;
int m_ypos;
int m_Energie;
int m_fGeschwindigkeit;
public:
CRaumschiff();
CRaumschiff(int a);
void ZeigeDaten();
};
CRaumschiff::CRaumschiff()
{
cout <<"Konstruktor aufgerufen" << endl;
m_Energie = 100;
cout <<"Konstruktor fertig!" << endl;
}
CRaumschiff::CRaumschiff(int a=0)
{
cout <<"Konstruktor aufgerufen!" << endl;
m_Energie = a;
cout <<"Raumschiff wurde initialisiert!" << endl;
}
void CRaumschiff::ZeigeDaten()
{
cout << m_Energie << endl;
}
int main()
{
CRaumschiff Spieler(5);
CRaumschiff Gegner;
cout << "Spieler: " << endl;
Spieler.ZeigeDaten();
cout <<"Gegner: " << endl;
Gegner.ZeigeDaten();
return 0;
}
|
Beim Kompilieren wirft er mir aber immer einen Fehler...
|
Quellcode
|
1
2
3
4
|
e:\Kap6\Konstruktor\main.cpp(35) : error C2668: 'CRaumschiff::CRaumschiff': Mehrdeutiger Aufruf einer überladenen Funktion
e:\Kap6\Konstruktor\main.cpp(11): kann 'CRaumschiff::CRaumschiff(int)' sein
e:\Kap6\Konstruktor\main.cpp(10): oder 'CRaumschiff::CRaumschiff(void)'
bei Anpassung der Argumentliste '(void)'
|
Ich kann aber bei aller Liebe keinen relevanten Unterschied zum im Buch angeführten Beispiel sehen... bin ich blind?
Grüße
Gast