Advertisement

C++ MOOC易错题解析

阅读量:

派生类构造函数的成员初始化列表中,不能包含的初始化项是()。

这里所说的“基类的子对象”即基类的数据成员

在C++中,在使用时存在一个明确的规定:构造函数不被允许继承 ,这意味着开发者必须确保无法从一个派生类继承另一个派生类的构造函数。当我们在派生类的成员声明中显式地使用 初始化列表 时,在定义域内直接指定如何 初始化 基类成员的行为被称为" 越级 初始化 " 。这种做法会导致编译器发出警告并无法运行程序。

举个栗子:
我们先创建一个基类,里面有一个int型子对象

复制代码
    class A{
    	protected:
    		int n;//基类的子对象
    	public:
    		A();
    		A(int temp):n(temp){}
    }; 

随后定义一个继承类,并在子类构造函数中指定初始化顺序。

复制代码
    class B:public A{
    	public:
    		B(int temp):n(temp){}//对基类子对象n进行初始化
    };

在主

全部评论 (0)

还没有任何评论哟~