S
Stefan Istrate
I have the following code:
#include <iostream>
using namespace std;
class B {
int x;
public: B(int i) {x = i;}
};
class D1: virtual B {
public: D1(int i): B(i){}
};
class D2: virtual B {
public: D2(int i): B(i){}
};
class D3: B {
public: D3(int i): B(i){}
};
class D4: private B {
public: D4(int i): B(i){}
};
class D5: virtual public B {
public: D5(int i): B(i){}
};
class M1: D1, public D2, D3, private D4, virtual D5 {
public:
M1(): D5(5), D1(1), D2(2), D3(3), D4(4) {}
};
int main() {
M1 x;
}
This doesn't work and I don't know why. It seems that a constructor of
class B is called without parameters, but I can't figure where. Any
suggestions would be appreciated.
Thank you,
Stefan Istrate
#include <iostream>
using namespace std;
class B {
int x;
public: B(int i) {x = i;}
};
class D1: virtual B {
public: D1(int i): B(i){}
};
class D2: virtual B {
public: D2(int i): B(i){}
};
class D3: B {
public: D3(int i): B(i){}
};
class D4: private B {
public: D4(int i): B(i){}
};
class D5: virtual public B {
public: D5(int i): B(i){}
};
class M1: D1, public D2, D3, private D4, virtual D5 {
public:
M1(): D5(5), D1(1), D2(2), D3(3), D4(4) {}
};
int main() {
M1 x;
}
This doesn't work and I don't know why. It seems that a constructor of
class B is called without parameters, but I can't figure where. Any
suggestions would be appreciated.
Thank you,
Stefan Istrate