c++ const
来源:互联网 发布:出货单打单软件 编辑:程序博客网 时间:2024/06/06 07:17
const的使用方法
在全局定义 const float PI=3.1415926 在类中定义 class A {...
A(int size); const int SIZE; };
A::A(int size):SIZE(size) { ... }
对参数和函数的定义(const只能修饰输入参数,不能修饰输出参数) const int x=1; 表示x的值是1,在程序中不能改变;
const int* x; 表示x代表的地址所指向的内容是不能改变得; int const* x; 与const int* x;的表示的意思一样; int * const x; 表示x代表的地址是不能改变的;
当是输入参数时,不需要是void Func(const int i),void Func(const int& i),可以是void Func(int i) 因为输入参数采用"值传递"(const int i),由于函数将自动产生临时变量用于复制该参数,该输入参数本来就无需保护,所以不要加const修饰;
不用const int& i的原因在于内部数据类型的参数不存在构造、析构的过程,而复制也非常快,"值传递"和"引用传递"的效率几乎相当.
当是输入参数时,不需要是void Func(const A a),void Func(A a),可以是void Func(A& a)或void Func(const A& a)
不用const A a,A a的原因是函数的效率比较低,因为函数体内将产生A类型的临时对象用于复制参数a,而临时对象的构造、复制和析构过程都需要消耗时间
最好用const A&a的原因是A&a中的a可以被改变,A&a和const A&a的好处在于都不会产生临时对象,效率高;
const A Func(const A&a )const的好处
第一个const表示返回的是个内部产生的对象,它不能被修改 const A Func(...) {...}
const A a=Func(...);//不能是A a=Func(...);
第二个const表示输入的参数是引用传递,函数内部不会产生临时对象,而且这个对象不能被内部修改
var cpro_psid = "u2787156";
var cpro_pswidth = "966";
在全局定义 const float PI=3.1415926 在类中定义 class A {...
A(int size); const int SIZE; };
A::A(int size):SIZE(size) { ... }
对参数和函数的定义(const只能修饰输入参数,不能修饰输出参数) const int x=1; 表示x的值是1,在程序中不能改变;
const int* x; 表示x代表的地址所指向的内容是不能改变得; int const* x; 与const int* x;的表示的意思一样; int * const x; 表示x代表的地址是不能改变的;
当是输入参数时,不需要是void Func(const int i),void Func(const int& i),可以是void Func(int i) 因为输入参数采用"值传递"(const int i),由于函数将自动产生临时变量用于复制该参数,该输入参数本来就无需保护,所以不要加const修饰;
不用const int& i的原因在于内部数据类型的参数不存在构造、析构的过程,而复制也非常快,"值传递"和"引用传递"的效率几乎相当.
当是输入参数时,不需要是void Func(const A a),void Func(A a),可以是void Func(A& a)或void Func(const A& a)
不用const A a,A a的原因是函数的效率比较低,因为函数体内将产生A类型的临时对象用于复制参数a,而临时对象的构造、复制和析构过程都需要消耗时间
最好用const A&a的原因是A&a中的a可以被改变,A&a和const A&a的好处在于都不会产生临时对象,效率高;
const A Func(const A&a )const的好处
第一个const表示返回的是个内部产生的对象,它不能被修改 const A Func(...) {...}
const A a=Func(...);//不能是A a=Func(...);
第二个const表示输入的参数是引用传递,函数内部不会产生临时对象,而且这个对象不能被内部修改
第三个const表示此函数内部的所涉及的数据成员不能修改
class Stack {
var cpro_psid = "u2787156";
var cpro_pswidth = "966";
var cpro_psheight = "120";
int m_num;
int GetCount(void) const;
int Pop(void);
}
0 0
- const c
- const【C++】
- const ||c
- C++Const
- [c++]const
- C++:const
- const用法(C/C++)
- C++/C const问题
- 【c/c++】const引用
- readonly vs. const [C#]
- C++(二)const
- C语言const介绍
- C语言const介绍
- readonly vs. const [C#]
- readonly vs. const [C#]
- c++:const 操作小结
- readonly vs. const [C#]
- C中的CONST
- ZCMU—1465
- U盘安装Windows和Ubuntu 15.04双系统图解教程
- js客户端加密
- 会场安排问题
- leetcode-389. Find the Difference
- c++ const
- HDU 1853 Cyclic Tour(最佳二分图匹配寻找图中的环)
- python学习笔记(四)
- Matlab 4. Matlab2016 不能保存数据(变量)的解决方法(中文版)-v7.3 switch
- 用网页代替Android的交互页面
- 递归与分治策略
- 使用ant编译android工程遇到的问题
- 计算机网络学习笔记概述-1
- Mongodb 3.2 官方 启用认证