Ale*_*ion 4 c++ pointers const reference lvalue
我收到此错误"非const lvalue to type'Cell'无法使用此代码绑定到'Cell*'类型的临时值:
class RegionHolder
{
public:
RegionHolder(Region& Region1):m_RegionCellNOO(&(Region1.m_NOO))
~RegionHolder();
protected:
Cell & m_RegionCellNOO; // difference is here
};
Run Code Online (Sandbox Code Playgroud)
但不是这个:
class RegionHolder
{
public:
RegionHolder(Region& Region1):m_RegionCellNOO(&(Region1.m_NOO))
~RegionHolder();
protected:
Cell * m_RegionCellNOO; // difference is here
};
Run Code Online (Sandbox Code Playgroud)
我不明白这个问题,并且真的想使用引用而不是指针.
谢谢
你忘了向我们展示这个定义,但可能Region1.m_NOO是一个类型的对象Cell.您的第一个示例是获取它的地址,并尝试使用结果指针初始化引用.引用不是从指针初始化,而是从对象本身初始化:
RegionHolder(Region& Region1):m_RegionCellNOO(Region1.m_NOO) {}
// ^ no & ^^ don't forget that
Run Code Online (Sandbox Code Playgroud)
使用引用而不是指针有一个警告:它们不可分配,所以你的类也不是.通常这不是问题; 但是如果你确实需要你的类可以赋值,那么你需要使用指针代替.
| 归档时间: |
|
| 查看次数: |
25449 次 |
| 最近记录: |