#include <iostream> using namespace std; class A{ public: A(int i):index(i){} void display() { cout << index << endl; } private: int index; }; class B{ public: B(){ a = A(4); } void print(){ a.display(); } private: A a; }; int main() { B b; b.print(); } 选中下面空白查看结果: 说明类数据成员赋值过程,构造函数的调用会先初始化数据成员,然后再执行函数体里的语句。然而A没有默认构造函数,故B的构造函数体再执行前无法初始化a.