标题:在类成员函数中使用const的问题?
只看楼主
newyj
Rank: 2
等 级:新手上路
威 望:3
帖 子:542
专家分:0
注 册:2008-1-4
 问题点数:0 回复次数:8 
在类成员函数中使用const的问题?
例如在 类的成员函数中 声明一个 函数
int display() const {} 中的 const有什么作用?
const int display() {}中的 const 又是有什么作用?
搜索更多相关主题的帖子: 成员函数 const int display 声明 
2008-03-21 20:34
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
得分:0 
前一个是只允许常对象访问(在这个函数里面对象的属性是不允许改变的)..后一个是返回值是常量不允许改变

学习需要安静。。海盗要重新来过。。
2008-03-21 21:14
newyj
Rank: 2
等 级:新手上路
威 望:3
帖 子:542
专家分:0
注 册:2008-1-4
得分:0 
不好意思 第一个 还是 不怎么懂 是说在函数体中的所有值都不允许改变吗
2008-03-21 21:51
zjl138
Rank: 1
等 级:新手上路
威 望:1
帖 子:788
专家分:0
注 册:2007-11-12
得分:0 
当然不是。
int display() const {}表示是const函数,说明这个函数中不能有够改变 类 中的任何值,只能是读取。

i like linux...
2008-03-21 23:51
aipb2007
Rank: 8Rank: 8
来 自:CQU
等 级:贵宾
威 望:40
帖 子:2879
专家分:7
注 册:2007-3-18
得分:0 
第一个:
const修饰的东西是this指针,所以值能常量对象才能去访问这个函数。

Fight  to win  or  die...
2008-03-22 00:08
newyj
Rank: 2
等 级:新手上路
威 望:3
帖 子:542
专家分:0
注 册:2008-1-4
得分:0 
是不是 不能用常量值去初始化类的数据成员 和 成员函数 能初始化类外的变量
不知道 理解的是否正确
2008-03-22 10:18
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
得分:0 
不需要..你只要把你得类声明成常类就可以了..不必要去单独声明

学习需要安静。。海盗要重新来过。。
2008-03-22 10:23
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
得分:0 
给你绕饶大脑
#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;
}

学习需要安静。。海盗要重新来过。。
2008-03-22 11:22
newyj
Rank: 2
等 级:新手上路
威 望:3
帖 子:542
专家分:0
注 册:2008-1-4
得分:0 
呵呵 虽然 不是 很懂 但是 还是 这样好
const demo b;中的const在这里有什么用
const demo *p;这个是定义了个 指向demo类的const的指针 有什么用 是不能修改什么
const demo* back()
     {
        return this;  
     }
这个中的this 返回的是什么 值是什么
p=a.back();back()函数不是  定义为const demo*吗 不是很懂
还请耐心的指教啊 谢谢了
2008-03-22 11:48



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-204604-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.962022 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved