C++基础知识—常量和常成员函数

1.常量:程序运行的整个过程中,其值始终不可改变的量,const int a = 100;同int const a = 100。
2.指向常量的指针:const char  *c = "abc";   与 char const *c = "abc";相同,const的修饰符是char。
c[2] = 'd';//F 不能修改指向的常量
c = "def";//T数组名退化为指针,指针的值可以改变,指向另一个变量
3.常指针: char *const c = "abc";//指针本身不可改变,所指数据可以改变,可以看成char (*const) c;const的修饰符是*指针。
c = "def";//F
c[2] = 'd';//T
4.指向常量的常指针:const char* const c = "abc";
   c = "def";//F
  c[2] = 'd';//F
5.一个指向常量的指针可以指向一个非常量对象,如2中line3。
6.一个指向非常量的指针不可以指向常量对象。
7.常成员函数:常成员函数是指由const修饰符修饰的成员函数,在常成员函数中不得修改类中的任何数据成员的值,可以理解为只读函数,
通常我们用的各种get的函数应该声明为const成员函数。
class classname { 
 public: 
  int fun() const; 
  ..... 
}
8..常成员函数中不能调用类中非常成员函数,有可能会简洁修改数据成员。
9.常对象,只能通过对象调用const成员函数,当然构造函数和析构函数是可以用的。
10.类的非静态数据成员可以声明为mutable,然后就可以被该类的常量成员函数(当然也包括非常量成员函数)修改。
11.常成员函数的const是修饰成员函数的this指针,静态成员变量不属于任何对象,静态成员没有this指针,所以可以用常成员函数修改。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值