我正在处理一个大项目,在整个代码中我们有类typedef基类并在初始化列表中调用它的构造函数。为什么是这样?我在下面构建了一个示例,显示了通常所做的事情据我所知,施工人员没有任何区别。有什么好处?我试过谷歌但没有结果。
#include <stdio.h>
class A
{
public:
A()
{
printf("A Constructed\n");
}
};
class B : public A
{
public:
typedef A super;
B()
:super()
{
printf("B Constructed\n");
}
};
int main()
{
B b;
return 0;
}
答案 0 :(得分:0)
班级A
是班级B
的一部分。
如果在构造A
的实例时未调用B
的构造函数,则会导致代码非常不稳定。 (例如,A
的所有成员数据都将未初始化。
可以指定A
的哪个构造函数,如果需要,可以使用基本成员初始化程序。
在您的情况下,使用基本成员初始化程序是多余的:您可以编写
B()
{
printf("B Constructed\n");
}