C++中对Const用法的总结

作者: JesonWang | 来源:发表于2016-06-04 22:51 被阅读0次

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常量会在内存中分配(可以是堆中也可以是栈中)。

相关文章

  • C++中对Const用法的总结

    1、C++函数声明时在后面加const的作用:非静态成员函数后面加const(加到非成员函数或静态成员后面会产生编...

  • C++ 中 const 的用法总结

    一、const 修饰普通类型的变量 例:const int a = 7; a被定义为一个常量,不能再被赋值。 二、...

  • C++ const用法

    C++中的const关键字的用法非常灵活,而使用const将大大改善程序的健壮性,本人根据各方面查到的资料进行总结...

  • C++中const 关键字的用法(转)

    C++中const 关键字的用法 const修饰变量 const 主要用于把一个对象转换成一个常量,例如: 上面的...

  • C++中的const成员函数(函数声明后加const)用法详解

    转载请注明出处,尊重智慧!文章来源: C++中的const成员函数(函数声明后加const,或称常量成员函数)用法...

  • C/C++中的const的用法

    来说下c/c++中的const的用法。在英语中常数的一种表达是“中的const的”,在编程中可能是借用了这个单词(...

  • 2017-03-14 C++阶段

    Task List 1. 回顾引用用法 2. 掌握c++中 new开辟空间的用法 3. 回顾数组指针以及const...

  • 2018-11-27 类成员函数后面加const

    c++中关于const的用法有很多,const既可以修饰变量,也可以函数,不同的环境下,是有不同的含义。今天来讲讲...

  • C语言到C++(2) - const

    C++中最早引入const是为了替代#define,后来又衍生出了其它用法。这一篇中我们来详细介绍const的各种...

  • 关于C++ const 的全面总结

    原文地址: 不详 C++中的const关键字的用法非常灵活,而使用const将大大改善程序的健壮性,本人根据各方面...

网友评论

    本文标题:C++中对Const用法的总结

    本文链接:https://www.haomeiwen.com/subject/opawrttx.html