C++ 编程思想——常量

1、应该完全用const取代#define的值替代。
2、C++中的const默认为内部连接。  ( C默认const是外部连接的。如果在C++中想达到外部连接,必须用extern。 )
    就是说,const仅在const被定义过的文件里才是可见的,而在连接时不能被其它编译单元看见。
    否则由于众多的const在多个cpp文件内分配存储,容易引起连接错误。
3、常量指针:  const int * x;
    指针常量:  int * const x = &d;
    常量对象:  const int * const x = &d;    or    int const * const x = &d;    ( 指针和对象都不能改变 )
4、在类里建立常量,不能用const,要用enum。
    类里使用const的意思是“在这个对象寿命期内,这是一个常量”。然而,对这个常量来说,每个不同的对象可以含一个不同的值。(不是整个类范围)
    enum的值是在编译时决定。
5、构造函数初始化表达式
    它是构造函数特殊的初始化方法。初始化发生在构造函数任何代码执行前。这里是把所有的const初始化的地方。
    例:   class fred {
                const size;
           public:
                fred();
           }
           fred::fred():size(100){}
6、const对象和const成员函数
   const对象只能调用const成员函数。
   const成员函数不修改成员数据。但是mutable成员可被const函数修改。
   例 (const成员函数):
       class X{
           int i;
       public:
           int f()const;
       };
       
       int X::f()const{return i;}
7、volatile成员
   语法和const一样。区别是告诉编译器不要擅自作出有关数据的任何假定。

posted on 2012-11-29 21:50  至柔  阅读(156)  评论(0)    收藏  举报

导航