为什么先调用基类构造函数然后派生类构造函数

Fih*_*hop 5 c++ constructor destructor

根据c ++规则,在定义派生类对象时,将调用基类构造函数来初始化基类成员,然后初始化派生类构造函数.对于析构函数,规则会恢复.

我想知道为什么要遵守这条规则.为什么第一个基础构造函数然后派生类构造函数?这样做有什么理由吗?或者只是因为它是c ++的定义.

谢谢,

小智 8

因为派生类的成员可能依赖于基类的成员,所以必须首先初始化基类的成员.

你不能争论相反.