读书人

有点晕啊问个简单的关于对象数组嵌套的

发布时间: 2012-08-08 14:32:45 作者: rapoo

有点晕啊,问个简单的关于对象数组嵌套的问题
class A
{
private:
int v;

public:

A(){v=0;}
~A(){}

void SetV(int tmp)
{
v=tmp;
}

int GetV(){return v;}
};

class B
{
private:
A ba[3];

public:

B(){}
~B(){}

A GetA(int i){return ba[i];}
};

class C
{
private:
B cb[5];

public:

C(){}
~C(){}

void SetAData()
{
for(int i=0;i<5;i++)
{
for(int j=0;j<3;j++)
{

cb[i].GetA(j).SetV((i+1)*(j+1));

printf(" %d ",cb[i].GetA(j).GetV());
}

printf("\n");

}

}

};


int main()
{

C c;

c.SetAData();

getchar();

}


输出结果居然全是0,也就是说setV函数压根没起作用,
一直以为系统创建C类对象时会自动为cb对象数组分配地址空间(5个B对象),创建cb时又会自动为ba分配空间(3个A对象),也就是c对象中的15个A应该在地址是独立的啊,真晕,求解,大家帮我清醒清醒啊

[解决办法]

C/C++ code
A GetA(int i){return ba[i];} 

读书人网 >C++

热点推荐