和孢子类似的ipad游戏:我不会阿。。。。求助!

来源:百度文库 编辑:神马品牌网 时间:2024/04/28 12:38:54
#include "stdafx.h"
#include "iostream.h"
class AA
{
public:
AA():aa(3),bb(2)
{
cout<<"ok"<<aa<<endl<<bb<<endl;
}
AA(int a,int b)
{
cout<<"ok__ok"<<aa<<endl<<bb<<endl;
aa = a;
bb = b;
}
int aa;
int bb;
};
class BB:public AA
{
public:
BB():aaa(8),bbb(7)
{
cout<<"ok"<<aaa<<endl<<bbb<<endl;
}
BB(int a,int b)
{
cout<<"error"<<aaa<<endl<<bbb<<endl;
aaa = a;
bbb = b;
}
int aaa;
int bbb;
};

int main(int argc, char* argv[])
{
BB my;
return 0;
}
谁能告诉我 my 对象的构造顺序??我的观点是:
先基类的数据成员然后是基类的构造函数,然后是子类的数据成员初始化,最后是子类的构造函数,对吗??谢谢大家告诉我。

我给你写它的语句执行顺序:

#include "stdafx.h"
#include "iostream.h"
class AA
{
public:
AA():aa(3),bb(2)
{ //3
cout<<"ok"<<aa<<endl<<bb<<endl; //4
} //5
AA(int a,int b)
{
cout<<"ok__ok"<<aa<<endl<<bb<<endl;
aa = a;
bb = b;
}
int aa;
int bb;
};
class BB:public AA
{
public:
BB():aaa(8),bbb(7)
{ //2//6
cout<<"ok"<<aaa<<endl<<bbb<<endl; //7
} //8
BB(int a,int b)
{
cout<<"error"<<aaa<<endl<<bbb<<endl;
aaa = a;
bbb = b;
}
int aaa;
int bbb;
};

int main(int argc, char* argv[])
{
BB my; //1
return 0; //9
}
在内存机制中
父类和子类是占用同一块内存的
只不过子类在父类的基础上增加了自己的部分(包括数据成员和属性)
这样一来就好理解了
所以你的观点是正确的

大体是这样。