C++C++中对Const用法的下结论

1、C++函数声明时以后面加const的来意:非静态成员函数后面加const(加到非成员函数或静态成员后面会生编译错误),表示成员函数隐含传入的this指针为
const指针,决定了以该成员函数中,任意修改它所当的的成员的操作都是免允的(因为含了针对性this指针的const引用修饰);唯一的差是对
mutable修饰的积极分子。加了const的分子函数可以吃非const对象以及const对象调用,但非加const的成员函数只能为非const对象调用。

2、Cons修饰普通变量

貌似生三三两两栽写法:const int value;//即Value的价值不克吃更改

                          int const value;//即value的价值不克吃转

上述的简单栽写法效果都是同样的。

3、Const修饰指针类型变量

A.const char* pContent;//也不过写成const (char)* pContent;

B.char* const pContent;//也不过写成(char*)const pContent;

C.char const* pContent;//也不过写成(char)Const *pContent;

D.const char* const pContent;

针对上述的总好将A与C分为同样近乎描述的结果尚且是const修饰*pContent做对的内容未可知为改,对于B来说也可形容成const
(Char*)
pContent;其义是借助const所修饰的是pConten是一个指南针变量就是一个常量,本身不容被改动。D表示指针变量和指针变量所对的情节都非能够为改成。

4、const修饰函数参数

譬如:void function(const int Var);//表示const修饰的Var的值未能够于改成

时常const修饰参数为用引用来提升实施效率如下所示:

例如:void Funcation(const int& Var);

5、const修饰函数的返回值

例如:const int funcation();

其意义是const所修饰的归来值必须是常量含义基本上和const修饰普通变量或者指针基本相同。

6.const修饰类对象、对象指针、对象引用

const修饰类对象表示该目标呢常量对象,其中的别样成员都未可知为修改。对于目标指针和对象引用也是相同。

const修饰的靶子,该目标的外非const成员函数都未可知叫调用,因为另外非const成员函数会来涂改成员变量的图。

7、const与define的区别

1、编译器处理方式不同

A.define宏是于先行处理等进行。

B.const常量是编译运行阶段采取。

(2) 类型和安全检查不同

A.define宏没有种,不做其他项目检查,仅仅是进展。

B.const常量有具体的品种,在编译阶段会履项目检查。

(3) 存储方各异

A.define宏就是展开,有些许地方用,就开展多少坏,不会见分配内存。

B.const常量会在内存中分配(可以是积着呢堪是栈中)。