关于c++派生类构造函数和析构函数的说法
下列关于派生类构造函数和析构函数的说法中,错误的是:A)派生类的构造函数会隐含调用基类的构造函数B)如果基类中没有缺省构造函数,那么派生类必须定义构造函数C)在建立派生类...
下列关于派生类构造函数和析构函数的说法中,错误的是:
A)派生类的构造函数会隐含调用基类的构造函数
B)如果基类中没有缺省构造函数,那么派生类必须定义构造函数
C)在建立派生类对象时,先调用基类的构造函数,再调用派生类的构造函数
D)在销毁派生类对象时,先调用基类的析构函数,再调用派生类的析构函数
麻烦把这等方面的内容讲细点 展开
A)派生类的构造函数会隐含调用基类的构造函数
B)如果基类中没有缺省构造函数,那么派生类必须定义构造函数
C)在建立派生类对象时,先调用基类的构造函数,再调用派生类的构造函数
D)在销毁派生类对象时,先调用基类的析构函数,再调用派生类的析构函数
麻烦把这等方面的内容讲细点 展开
2013-05-13
展开全部
D是错的,应该是在销毁派生类对象时,先调用派生类的析构函数,再调用基类的析构函数.
这跟盖房拆房一个道理,盖时肯定要先盖基础(相当于建立时先调用基类),再盖上面(再调用派生类)
拆房时,肯定很从上面拆(先调用派生类的析构函数),再拆下面(再调用基类的析构函数)
其实上面只有简单的解释,上面的调用是因为,若你先调用基类的析构函数,会把派生类正在用的一次资源销毁,因为此时派生类还没有被销毁,所以肯定会出现问题。
这跟盖房拆房一个道理,盖时肯定要先盖基础(相当于建立时先调用基类),再盖上面(再调用派生类)
拆房时,肯定很从上面拆(先调用派生类的析构函数),再拆下面(再调用基类的析构函数)
其实上面只有简单的解释,上面的调用是因为,若你先调用基类的析构函数,会把派生类正在用的一次资源销毁,因为此时派生类还没有被销毁,所以肯定会出现问题。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询