我认为这被称为反思性联想,但我不太确定。
这是代码(足以看出其重要性):
CGmae::CGame(void)
{
CFigure * figure = new CFigure(this);
}
CFigure::CFigure(CGame * game)
{
CGame * game = game;
}
我想在类CGame中创建一个CFigure对象,以便CFigures知道CGame,反之亦然。为什么不使用“ this”?我需要怎么做才能解决问题?
提前致谢!!
最佳答案
对我来说很好用(添加了惯用的改进和拼写检查功能):
struct CGame;
struct CFigure
{
CGame * cg;
CFigure(CGame * p) : cg(p) { }
};
struct CGame
{
CFigure * cf;
CGame() : cf(new CFigure(this)) { }
}; // better be sure to understand memory leaking and exceptions...
CGame g; // works