一.说明
1.const int和int const没有区别
二.和指针的关系:以*号为分界,前部是被指对象的类型,后部是指针类型。按这个来说:
1.指向常量的变量指针const int * p:
p是一个变量指针(普通指针);p指向常量。
其实被指对象即可以是变量也可以是常量,只是p一厢情愿地认为它是常量,因此不能通过p修改它的值。
2.指向变量的常量指针int * const p:
p是一个常量指针(不能改变所指对象);p指向普通变量
三.和引用的关系(与和指针的关系类似)
1.引用常量的(常量)引用const int & r:
r是一个(常量)引用(普通引用);r引用常量。
其实被引用对象即可以是变量也可以是常量,只是r一厢情愿地认为它是常量,因此不能通过r修改它的值。
虽然const int & r可以引用变量,但int & r不能引用常量。
2.引用变量的常量引用int & const r:
因为引用本来就不可重新绑定,使用不需要加const限定,甚至就不允许这样定义。
四.和成员函数的关系
1.声明:int className::funName(int x,double y) const;
2.定义:int className::funName(int x,double y) const{...}
3.声明和定义都要有const,否则是不同的函数。这和虚函数不一样。
这种const函数既不能修改成员变量也不能调用非const成员函数。
但是这种函数可以修改mutable修饰的成员变量。
五.在C和C++中的不同
C++:const关键字
最新推荐文章于 2024-07-29 22:37:22 发布