C++中子类如何选择父类的构造函数?class A{public:A(){coutA}A(int i){couta}}class B{public:
C++中子类如何选择父类的构造函数?
class A
{
public:
A()
{
cout<<"A";
}
A(int i)
{
cout<<"a";
}
};
class B
{
public:
B()
{
cout<<"B";
}
B(int i)
{
cout<<"b";
}
};
class C:public A
{
public:
C()
{
cout<<"C";
}
private:
B m_temp;
};
int main()
{
C test; //在这里,程序将输出"ABC"。如果我想输出"abC",该怎么做呢?向各位求教。
}
[解决办法]
- C/C++ code
class C:public A { public: C() { cout <<"C"; } C(int a):A(a),m_temp(a) { cout <<"C"; }private: B m_temp; }; int main() { C test(1); // return 0;}
[解决办法]
up!
也可以不用继承了,都用聚合
class C:public A
{
public:
C():m_tempA(),m_tempB()
{
cout < <"C";
}
C(int i):m_tempA(i),m_tempB(i)
{
cout < <"C";
}
private:
A m_tempA;
B m_tempB;
};
int main()
{
C test1; //输出"ABC"
C test2(1); //输出"abC"
} 