首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

从const成员函数回来*this

2013-09-15 
从const成员函数返回*thisC++Primer上一句话,“不能从const成员函数返回指向类对象的普通引用。const成员函

从const成员函数返回*this
C++Primer上一句话,“不能从const成员函数返回指向类对象的普通引用。const成员函数只能返回*this作为一个const引用。”
const成员函数只能返回const对象引用吗?
刚有翻了下林锐的高质量编程,“const成员函数并非一定要返回const类型,非const成员函数也并非必须返回非const类型。”
怎么看着有点矛盾啊?
[解决办法]
const成员函数并非一定要返回const类型,非const成员函数也并非必须返回非const类型 --- 并非一定  但最好还是按规矩来
[解决办法]
下面那句,并没有说是类对象自身啊,可以是别的东西
比如const成员函数返回值类型而非引用,或者返回mutable的成员引用
非const成员函数返回const类型就更加可以了

当然,const成员函数返回类自身的非const引用或者内部成员变量的非const引用原则上是不可以的,但要是强转一下,语法上也不是做不到
[解决办法]
const 成员函数不能修改对象自身的数据,也不能返回一个什么东西让外面去修改它,理解这个就能具体情况具体判断了。
[解决办法]
class A
{
pubilc:
       A(int a);
       int fun()const;
pubilc:
      int i;
}
int A::fun()const
{
   this->i = 10;// 这个位置是错的。
    return i;
}
const的成员函数,说明类的成员变量都是const。外界是不能对他进行修改的。

热点排行