因为基类有默认的构造函数(即没有参数)和你定义的A(int x)这个构造函数,所以,编译器 要进行选择。依据4,参考到初始化列表b(v),y(b+2),x(b+1),d(b),A(v)中有A(v),所以编译器 选择调用你定义的构造函数A(int x),所以打印输出a的值,输出 1,然后,依据2,派生类自身定义的 部分是按它的定义顺序初...
1>.\1508.cpp(12) : error C2614: “c1”: 非法的成员初始化:“id”不是基或成员
1>.\1508.cpp(12) : error C2614: “c1”: 非法的成员初始化:“id”不是基或成员
答:对派生类对象进行初始化时,要调用基类构造函数对原基类数据成员组进行初始化,派生类构造函数类外定义的一般形式为: 派生类名::派生类名(参数总表):基类名1(参数表1),…,基类名n (参数表n) { 派生类新增成员初始化语句;} 冒号后面的列表是调用各基类构造函数用的。列表相互间用逗号隔开。列表们的顺序可以...
百度试题 结果1 题目在一个派生类中,对基类成员、类对象成员和非类对象成员的初始化次序是先___,后___,最后为___。相关知识点: 试题来源: 解析 基类成员 类对象成员 非类对象成员
答: 由于基类在派生类中通常是隐藏的,所以依序通过调用基类的构造函数来设定基类的数据成员的初值。它的格式为<派生类名>(形参表):基类1(参数表),基类2(参数表)…对象成员1(参数表),对象成员2(参数表)…{}结果一 题目 在定义派生类的过程中,如何对基类的数据成员进行初始化? 答案 答: 由于基类在派生类中...
相关知识点: 试题来源: 解析 正确答案:基类成员 类对象成员 非类对象成员解析:在派生类的初始化过程中,最先初始化的是基类对象,然后是其他类的对象成员,包括自身类对象的引用或指针,或其他类的对象,最后在是非类对象成员。析构的时候则反之。
派生类对象可以初始化基类的引用。引用是别名,但这个别名只能包含派生类对象中的由基类继承来的成员。8.1.6 在类中定义对象成员称为复合或嵌套,请对比复合与
百度试题 题目派生类初始化列表中,可以使用 基类名(派生类对象) 这种形式调用基类复制构造函数,完成对派生类中基类定义成员的初始化构造 相关知识点: 试题来源: 解析 √
下列哪一种顺序是派生类数据成员的正确的初始化顺序.( ) A. 基类成员-〉对象成员—〉新定义的普通成员 B. 基类成员—>新定义的普通成员—>对象成员 C. 新定义的普通成员—〉对象成员—>基类成员 D. 对象成员—>新定义的普通成员—>基类成员 相关知识点: ...