注册 登录
编程论坛 C++教室

在类成员函数中使用const的问题?

newyj 发布于 2008-03-21 20:34, 894 次点击
例如在 类的成员函数中 声明一个 函数
int display() const {} 中的 const有什么作用?
const int display() {}中的 const 又是有什么作用?
8 回复
#2
sunkaidong2008-03-21 21:14
前一个是只允许常对象访问(在这个函数里面对象的属性是不允许改变的)..后一个是返回值是常量不允许改变
#3
newyj2008-03-21 21:51
不好意思 第一个 还是 不怎么懂 是说在函数体中的所有值都不允许改变吗
#4
zjl1382008-03-21 23:51
当然不是。
int display() const {}表示是const函数,说明这个函数中不能有够改变 类 中的任何值,只能是读取。
#5
aipb20072008-03-22 00:08
第一个:
const修饰的东西是this指针,所以值能常量对象才能去访问这个函数。
#6
newyj2008-03-22 10:18
是不是 不能用常量值去初始化类的数据成员 和 成员函数 能初始化类外的变量
不知道 理解的是否正确
#7
sunkaidong2008-03-22 10:23
不需要..你只要把你得类声明成常类就可以了..不必要去单独声明
#8
sunkaidong2008-03-22 11:22
给你绕饶大脑
#include"iostream"
using namespace std;
class demo
{
private:
    int i;
    int j;
public:
     demo():i(4),j(6)
     {}
     void display() const
     {
         cout<<i+j<<endl;
     }
     void display()
     {
         cout<<i-j<<endl;
     }
     const demo* back()
     {
        return this;
     }
};
int main()
{
    demo a;
    const demo b;
    const demo *p;
    a.display();
    b.display();    
    p=a.back();
    p->display();
    return 1;
}
#9
newyj2008-03-22 11:48
呵呵 虽然 不是 很懂 但是 还是 这样好
const demo b;中的const在这里有什么用
const demo *p;这个是定义了个 指向demo类的const的指针 有什么用 是不能修改什么
const demo* back()
     {
        return this;  
     }
这个中的this 返回的是什么 值是什么
p=a.back();back()函数不是  定义为const demo*吗 不是很懂
还请耐心的指教啊 谢谢了
1