【发布时间】:2021-06-30 18:49:57
【问题描述】:
#include <iostream>
using namespace std;
class A{
public:
A(){
cout << "Hello World";
}
};
class B:public A{
public:
B(){
cout << "World";
}
};
int main(){
B obj1;
return 0;
}
为什么这个程序打印Hello WorldWorld,不应该打印World,因为我已经创建了B类的对象,为什么会调用A的构造函数?
【问题讨论】:
-
两者都会打印。 A的构造函数会先被调用,然后是B的
-
但我的问题是:为什么要调用 A 的构造函数? @TedLyngmo
-
为什么不希望
A的成员被初始化?它们不会被B的构造函数初始化。也许B甚至无法访问A的所有成员,它是否知道初始化A的成员变量的值是什么