c++ primer 中的 const 关键字理解

来源:互联网 发布:mac 剪裁mp3 编辑:程序博客网 时间:2024/06/05 17:48

1.const  对象只能调用 const成员函数 非const对象两种都可以调用,而非const调用匹配更好。

2.const 函数是承若不修改函数所属对象,即不能修改数据成员。

3.const 数据成员,必须且只有在构造函数的初始化列表中初始化,而const 对象必须初始化。所以申明了const数据成员就必须有个构造函数初始化const数据成员。(构造函数的初始化列表才是真正的初始化数据成员,而函数体是给数据成员赋值)。

4.const 函数的申明是在函数名后加 const 关键字,如 void a() const; 而数据成员的申明是在类型名前 加 const  如 const int i;


#include <iostream>using namespace std;class a{typedef long index1;public:a():con(1){};void prin( index1 i); void prin(index1 i) const;private: const int con;};void a::prin( index1 i ){cout<<"this is a common"<<i;}void a::prin( index1 i ) const{ i=1;i++;cout<<"this is a const"<<con<<"i="<<i;}int _tmain(int argc, _TCHAR* argv[]){a b;b.prin(1);const a c;c.prin(1);system("pause");return 0;}


0 0
原创粉丝点击