Chinaunix首页 | 论坛 | 博客
  • 博客访问: 199499
  • 博文数量: 67
  • 博客积分: 2720
  • 博客等级: 少校
  • 技术积分: 625
  • 用 户 组: 普通用户
  • 注册时间: 2009-10-05 13:53
文章分类
文章存档

2011年(1)

2010年(43)

2009年(23)

我的朋友

分类: C/C++

2010-06-21 16:12:50

(1)const修饰成员变量
const修饰类的成员函数,表示成员常量,不能被修改,同时它只能在初始化列表中赋值。
    class A
    {
        …
        const int nValue;         //成员常量不能被修改
        …
        A(int x): nValue(x) { } ; //只能在初始化列表中赋值
     }


(2)const修饰成员函数
const修饰类的成员函数,则该成员函数不能修改类中任何非const成员函数。一般写在函数的最后来修饰。
    class A
    {
        …
       void function()const; //常成员函数, 它不改变对象的成员变量.                       

//也不能调用类中任何非const成员函数。
}

对于const类对象/指针/引用,只能调用类的const成员函数,因此,const修饰成员函数的最重要作用就是限制对于const对象的使用。

a. const成员函数不被允许修改它所在对象的任何一个数据成员。

b. const成员函数能够访问对象的const成员,而其他成员函数不可以。

(3)const修饰类对象/对象指针/对象引用

·             const修饰类对象表示该对象为常量对象,其中的任何成员都不能被修改。对于对象指针和对象引用也是一样。

·             const修饰的对象,该对象的任何非const成员函数都不能被调用,因为任何非const成员函数会有修改成员变量的企图。
例如:
class AAA
{
    void func1();
void func2() const;
}
const AAA aObj;
aObj.func1(); ×
aObj.func2(); 正确

const AAA* aObj = new AAA();
aObj-> func1(); ×
aObj-> func2(); 正确


阅读(3238) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~