Hallo Ihr lieben,
ich habe eine kleine Frage zu dem unten angegeben c++ code.
Wenn ich in der Klasse X den Standard Konstruktor entferne, bekomme ich nen Fehler vom Compiler. Jedoch möchte ich gar nicht, dass dieser aufgerufen wird bei der Vererbung, sondern der X(int a) Konstruktor und das müsste doch folgendes bewirken oder?
Y1( int a):X(a)
Für C++ nutze ich VS98 C++
Gruß
Marcel
ich habe eine kleine Frage zu dem unten angegeben c++ code.
Wenn ich in der Klasse X den Standard Konstruktor entferne, bekomme ich nen Fehler vom Compiler. Jedoch möchte ich gar nicht, dass dieser aufgerufen wird bei der Vererbung, sondern der X(int a) Konstruktor und das müsste doch folgendes bewirken oder?
Y1( int a):X(a)
Für C++ nutze ich VS98 C++
Gruß
Marcel
Code:
#include <iostream>
using namespace std;
class X
{
public:
int a;
X()
{
}
X(int a)
{
cout << "X"<< endl;
}
virtual ~X(){}
};
class Y1 : public virtual X
{
public:
Y1( int a):X(a)
{
cout << "Y1"<< endl;
}
virtual ~Y1(){}
};
class Y2 : public virtual X
{
public:
Y2( int a):X(a)
{
cout << "Y2"<< endl;
}
virtual ~Y2(){}
};
class Z : public Y1,public Y2
{
public:
Z( int a, int b):Y1(a),Y2(b)
{
}
};
int main()
{
Z * z = new Z(1,2);
cin.get();
return 0;
}