C ++有类函数传递给类本身的引用吗?

时间:2013-12-05 06:02:35

标签: c++ function reference

基本上,我有一个class World,其中包含与我游戏的游戏状态相关的所有数据。此类具有getPlayerPosition()hasLeader()等功能,并且还可以访问游戏中每个可绘制对象的位置。

world.update()内部我有一个运行的FSM。我将节省详细信息,但基本上我有另一个对象,它有一个名为test(World& world, SceneNode& node)的函数,它接受一个世界的引用,以便它可以测试某些节点与玩家之间的距离。我有很多这些"有条件的"那些做不同事情的对象,所以他们每个人都需要访问世界的不同部分,这就是我传入世界的原因。

但是world.update()调用了这个测试函数!我可以让世界传递自己的参考吗?在这个项目的另一个版本中,我认为我们尝试传递(*this),但我们收到了SegFaults,而我的合作伙伴认为这是因为(*this)

1 个答案:

答案 0 :(得分:1)

*这不会导致段故障。但是,如果您的test()调用world.xxx()函数,并且xxx()可能会调用test(),那么您将获得递归。如果是这种情况,则会导致堆栈溢出,并且可能发生段故障。