从包含的对象访问包含对象的成员
如果我有几个级别的对象包含(一个对象定义并实例化另一个定义和实例化另一个对象的对象..),是否可以访问包含上层,包含 - 对象变量和函数的对象?
例:
class CObjectOne
{
public:
CObjectOne::CObjectOne() { Create(); };
void Create();
std::vector<ObjectTwo>vObejctsTwo;
int nVariableOne;
}
bool CObjectOne::Create()
{
CObjectTwo ObjectTwo(this);
vObjectsTwo.push_back(ObjectTwo);
}
class CObjectTwo
{
public:
CObjectTwo::CObjectTwo(CObjectOne* pObject)
{
pObjectOne = pObject;
Create();
};
void Create();
CObjectOne* GetObjectOne(){return pObjectOne;};
std::vector<CObjectTrhee>vObjectsTrhee;
CObjectOne* pObjectOne;
int nVariableTwo;
}
bool CObjectTwo::Create()
{
CObjectThree ObjectThree(this);
vObjectsThree.push_back(ObjectThree);
}
class CObjectThree
{
public:
CObjectThree::CObjectThree(CObjectTwo* pObject)
{
pObjectTwo = pObject;
Create();
};
void Create();
CObjectTwo* GetObjectTwo(){return pObjectTwo;};
std::vector<CObjectsFour>vObjectsFour;
CObjectTwo* pObjectTwo;
int nVariableThree;
}
bool CObjectThree::Create()
{
CObjectFour ObjectFour(this);
vObjectsFour.push_back(ObjectFour);
}
main()
{
CObjectOne myObject1;
}
比如说,从CObjectThree中我需要访问CObjectOne中的nVariableOne。我想这样做:
int nValue = vObjectThree[index].GetObjectTwo()->GetObjectOne()->nVariable1;
但是,在编译并运行我的应用程序后,我收到内存访问冲突错误。
上面的代码有什么问题(例如,可能包含拼写错误)?
我是否必须动态创建对象而不是静态创建?
有没有其他方法如何实现存储在包含对象中的变量与包含对象?
没有找到相关结果
已邀请:
3 个回复
盟犯涩沟都
襄挟款籍
之后,您可以使用stl库中的std :: tree来构建结构。
旅牢斯讲