首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

继承-初始化列表有关问题

2012-02-11 
继承-初始化列表问题C/C++ code#include iostreamusing namespace stdclass A{private:int apublic:A(

继承-初始化列表问题

C/C++ code
#include <iostream>using namespace std;class A{private:    int a;public:    A(int aa=0)    {        a = aa;        cout << "a=" << a << endl;    }};class B{private:    int b;public:    B(int bb=0)    {        b = bb;        cout << "b=" << b << endl;    }};class C:public B{private:    A a;public:    C()    {        cout << "c default construtor" << endl;    }    C(int i,int j):a(i),B(j)    {        cout << "c constructor " << endl;    }};int main(){    C c(5,6);    return 0;}

输出结果是
b=6
a=5
c constructor
不应该是
a=5
b=6
c constructor
吗?

[解决办法]
按变量定义的顺序进行
因为C继承的B,C中其实包含变量b,b的定义在A a之前,初始化时按照b,a这个顺序,而不是按照a(i),B(j)
...

热点排行