重点:
1.委派构造优势在于
(1)如果继承它的子类构造不需要参数,则它直接继承基类的构造,节省代码空间。
(2)如果没有代码使用基类的构造函数,它不就会产生多余的代码。
缺点:
如果继承的基类的构造函数有自身的参数,这就不太适用。
初始代码:
class TestA
{
public:
TestA(int a) { m_a = a; }
void Get() { std::cout << m_a << std::endl; };
int m_a;
};
class TestB:public TestA
{
public:
TestB(int a):TestA(a){}
};
int main() {
TestB b(10);
b.Get();
return 0;
}
委派构造:
class TestA
{
public:
TestA(int a) { m_a = a; }
void Get() { std::cout << m_a << std::endl; };
int m_a;
};
class TestB:public TestA
{
public:
using TestA::TestA;
};
int main() {
TestB b(10);
b.Get();
return 0;
}