我有一个主类,我喜欢将其指针引用传递给我创建的对象,但它给了我错误:
错误 1 错误 C2664: 'GameController::GameController(GameLayer *&)' :
无法将参数 1 从“GameLayer *const”转换为“GameLayer *&”
我在 GameLayer 中拥有什么(主要对象)
m_pGameController = new GameController(this);
在 GameController 中我有这个构造函数
GameController(GameLayer*& GameLayer)
{
setGameLayer(gameLayer); // to GameLayer memeber )
}
原因是我需要能够从游戏控制器(GUI 东西)修改 GameLayer 中的数据
首先,类型this
可能GameLayer * const
or const GameLayer * const
取决于成员函数是否是const
或不。但是,它是一个const
指针。
话虽如此,对指针的引用type *&ref
表示您将修改指针,即它所指向的对象。
“因为这个指针是一个常量指针,所以你不能将其分配给非常量指针(GameLayer * p)”参考文献的上下文.
在引用指针的情况下,您不能分配给将修改值的引用this
。您不能将其分配给对non-const
指针(GameLayer *&p)
,但您可以分配对 a 的引用const
指针即GameLayer *const &p
.
因此,将构造函数更改为GameController(GameLayer * const & gameLayer)
应该管用。
但目前我在这里看不到它有任何用处。
如果您是从const
那么成员函数this
有类型const *const
所以你必须将其更改为GameController(const GameLayer * const & gameLayer)
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)