将实例传递给另一个类并访问它c ++

时间:2014-02-03 07:41:31

标签: c++ visual-c++

我只是将指向类实例的指针传递给另一个类,但我无法从指针访问任何内容。这真的,真的开始让我烦恼。这是一个非常简单的代码示例:

//manager.h
Game* game = new Game();
BClass* bc = new BClass(this);

//bclass.h
BClass(Manager* bcref) {
    bcref->game //error
    bcref->bc //error
}
//The errors are "left of ->x must point to class/struct/union/generic type.

我理解这是因为我需要转发声明但添加诸如“类管理器”之类的东西。在顶部似乎没有做任何事情。我仍然无法访问成员或方法。我真的想做一些非常简单的事情,而且我已经把头发拉了几个小时。我用Google搜索并尝试了我能做的一切。 有什么想法吗?

1 个答案:

答案 0 :(得分:3)

为了能够做到这一点:

BClass* bc = new BClass(this);

Manager需要BClass的定义。这可能是bclass.h。为了做到这一点

bcref->game;

BClass需要Manager的定义。这可能是manager.h

因此,您需要在另一个中包含每个标头,这将导致循环包含依赖项。您真正需要做的是通过将实现分别移动到bclass.cppmanager.cpp来破坏依赖关系,并在标头中仅使用前向声明。