我正在阅读有效的 C++,但我无法真正理解初始化列表的上述好处之一。据我了解,初始化列表还有助于避免调用不必要的默认构造函数,尤其是在不需要它们时。所以为了测试我创建了一个简单的代码示例
class base
{
public:
base()
{
std::cout << "Default Constructor called \n";
}
base (int i)
{
std::cout << "Int constructor called \n";
}
};
class der : public base
{
private:
base b;
public:
der(int i):b(i)
{
std::cout << "Derived constructor called \n";
}
};
void main()
{
der d(12);
}
没有,我假设只调用 int 构造函数,而不是调用基类的两个构造函数。任何人都可以澄清这个概念。