【发布时间】:2013-02-07 15:08:26
【问题描述】:
我收到此错误“输入'Cell'的非const左值无法使用此代码绑定到'Cell *'类型的临时:
class RegionHolder
{
public:
RegionHolder(Region& Region1):m_RegionCellNOO(&(Region1.m_NOO))
~RegionHolder();
protected:
Cell & m_RegionCellNOO; // difference is here
};
但不是这个:
class RegionHolder
{
public:
RegionHolder(Region& Region1):m_RegionCellNOO(&(Region1.m_NOO))
~RegionHolder();
protected:
Cell * m_RegionCellNOO; // difference is here
};
我不明白这个问题,我真的很想使用引用而不是指针。
谢谢
【问题讨论】:
-
一方面,您正在尝试将地址分配给第一个块中的引用。
-
&(Region1.m_NOO)是一个指针。当然你不能将int&绑定到int*,那么为什么Cell&和Cell*应该不同呢?
标签: c++ pointers reference constants lvalue