C++:const用法总结
2016-10-08 19:14
225 查看
01 const修饰普通变量和指针 语法: >>const type value; >>type const value; 示例1: const int a; // 普通变量 int const a; 示例2: int * const p; // (int *)p不可变 const (int *) p; // (int *)p不可变 const int * p; // (*p)不可变 int const * p; // (*p)不可变 02 const修饰函数参数 功能: 函数体不能修改参数本身或者参数其中包含的值) 示例1: void func(const int val); // 传递过来的入参不可变;因为是值传递,会重新分配内存空间,对此内存块操作,所以此处无意义; void func(const int * val); // (*val)不可变 void func(int * const p); // p不可变 示例2: void func(const type& val); // 引用参数在函数内不可变; 03 const修饰函数返回值 功能:修饰返回的变量不可变; 示例1: const int func(); 示例2: const int * func(); >>const int * p = func(); // (*p)不变 int * const func(); >>int * const p = func(); // p不变 04 const修饰对象/对象指针/对象引用 功能: 此为常量对象,其中的任何成员都不能被修改; //注:const修饰的对象,该对象的任何非const成员函数不能被调用,因为任何非const成员会有修改成员变量的企图; 示例: class A { void func1(); void func2() const; }; >>const A a; >>a.func1(); // wrong >>a.func2(); // ok 05 const 修饰成员变量 功能: const修饰的成员变量,表示成员常量,不能被修改,同时它只能在初始化列表中赋值; 示例: class A { private: const int m_val; // 成员常量,不能被修改; public: A(int a):m_val(a){ // 只能在初始化列表中赋值 } }; 06 const修饰成员函数 功能:常成员函数,不能改变任何对象的成员变量,也不能调用类中任何非const成员函数。 注:对于const类对象/指针/引用,只能调用类的const成员函数,因此,const修饰成员函数的重要作用就是限制于const对象的使用. 07 const常量与define宏定义的区别 (1) 编译器处理方式不同 define宏在预处理阶段展开 const常量在编译运行阶段使用 (2) 类型和安全检查不同 define宏没有类型,不做任何类型检查,仅仅是展开 const常量有具体的类型,在编译阶段会执行类型检查 (3) 存储方式不同 define宏仅仅是展开,有多少地方使用,就展开多少次,不会分配内存 const常量会在内存中分配(可以是堆中也可以是栈中)
相关文章推荐
- C++中const用法总结
- C++中const用法总结
- C++中const用法总结
- c/c++中const用法总结
- C/C++ const关键字用法总结
- C++中const用法总结
- 标准C++中const关键字的用法总结
- C++中const用法总结
- C++中const用法总结
- c/c++中const用法总结
- C++中const用法总结(转)
- c++ const用法总结
- C++中const用法总结
- C++ const用法总结
- c/c++中const用法总结
- C++中const用法总结
- C++中const用法总结
- C++ Const 用法总结
- c/c++中const用法总结
- C++中const用法总结