Chinaunix首页 | 论坛 | 博客
  • 博客访问: 35488
  • 博文数量: 4
  • 博客积分: 1499
  • 博客等级: 上尉
  • 技术积分: 51
  • 用 户 组: 普通用户
  • 注册时间: 2010-02-27 21:01
文章分类

全部博文(4)

文章存档

2010年(4)

我的朋友

分类: C/C++

2010-03-20 22:41:00

C++之const 用法小结

    const 修饰符在C++语言中使用比较多,其用途也是多种多样。初学者甚至熟练都容易对其使用产生困惑。const的使用分为两块:修饰变量和指针及修饰函数。
 const顾名思义,即为不发生变化的思义。当其用来修饰变量时,则将这个变量转变为一个常量。
       如const int size=10; 则size为一个常量,不能在程序中被改变或重新赋值,否则编辑器报错。const修饰的变量,因不能改变,定义时就必需要初始化。const 可以将指针指向的对象修饰为const ,如const int *iptr; 可以从右向左看出其修饰的对象。此处,iptr即为一个指向int常量的指针。iptr不能改变其所指向的对象,用于在程序中防止iptr对象的改变出错。但iptr可以重新赋值。一个const对象的指针只能指向const对象。
     const可以修饰指针,如int *const index。从右往左,index为一个指向int 类型的const指针。这个指针不能赋予其它的地址,但可以改变其所指向的对象。这种情况使用较少。还可以有指向const对象的const指针,如const int *const index。这样指针和对象都不能改变。
      const用于修饰成员函数。如果某个类中的成员函数不会改变这个类的对象则可将其申明为const成员函数。这是一种好的编程习惯,防止错误调用成员函数修改对象。如:
       class Word{
       private:
               const string *m_word;
       public:
              const string *GetWord() const {return m_word;}
              void SetWord(cost string * word) const {m_word=word;}//错误的函数类型
       }
    Word类中的GetWord成员函数返回数据成员m_word,因此将其定义为const成员函数。若将改变类数据成员的函数定义为const类型则编译会出错,如Word类中的SetWord函数。在C++编程时,const的成员函数中调用非const函数会报错,const成员函数内只能调用const类型的函数。
阅读(364) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~