我认为这被称为反思性联想,但我不太确定。

这是代码(足以看出其重要性):

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

09-06 22:12