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

来源:互联网 发布:mac 切换 只有windows 编辑:程序博客网 时间:2024/06/07 15:42
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
原创粉丝点击