gpt4 book ai didi

c++ - 我应该在初始化列表中调用基类默认构造函数吗?

转载 作者:IT老高 更新时间:2023-10-28 22:23:34 29 4
gpt4 key购买 nike

class A : public B
{
...
}

// case I : explicitly call the base class default constructor
A::A() : B()
{
...
}

// case II : don't call the base class default constructor
A::A() // : B()
{
...
}

案例二等于案例一吗?

对我来说,我假设在情况 II 中不会调用基类 B 的默认构造函数。然而,尽管仍然持有这个假设,但我已经运行了一个测试,证明并非如此:

class B
{
public:
B()
{
cout << "B constructor" << endl;
}
};

class A : public B
{
public:
A()
{
cout << "A constructor" << endl;
}
};

int _tmain(int argc, _TCHAR* argv[])
{
A a;
return 0;
}

//VS2008的输出

B constructor
A constructor
Press any key to continue . . .

最佳答案

在这两种情况下都会调用基类构造函数。

这里是 link到一篇有更多信息的文章。

关于c++ - 我应该在初始化列表中调用基类默认构造函数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5780093/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com