C++ const使用总结
这里针对C++中const的一些一般用法进行一下简单的总结
一、定义常量
常量不可修改
const int val = 5; int const val = 5;
与#define宏定义常量的区别:
(1)const常量具有类型,编译器可以进行安全检查;#define宏定义没有数据类型,只是简单的字符串替换,不能进行安全检查。
(2)有些集成化的调试工具能对const常量进行调试,对宏常量不能调试
二、修饰指针
(1)const int* p; //指针p指向的内容是常量,不可改变。 (2)int* const p; //指针本身是一个常量,不可改变。 (3)const int* const p; //指针本身和指向的内容都是常量,都不可以改变。
区分方法,*p代表对象内容,p代表指针本身,看const修饰的是哪个。
三、在函数中使用const
修饰函数参数
void function(const int Var);
表明参数在函数体内不能被修改,但此处没有任何意义,Var本身就是形参,在函数内不会改变。
包括传入的形参是指针也是一样。
(1)使用引用参数,可以防止创建副本,减少内存开销,同时可以在函数中对引用参数修改,函数结束后,引用参数的修改仍然存在。
(2)如果为了防止对引用参数进行修改,可以对该参数加上const关键字。
修饰函数返回值
与修饰普通变量和指针意义差不多,而在传引用时,如果不希望函数返回值被改变,就可以添加关键字 const 。
四、在类中使用const
修饰类成员变量
class A { const int nValue; }
(1)成员常量不可被修改。
(2)只能在初始化列表中被赋值。
修饰类成员函数
class A { void function()const; }
(1)常成员函数, 它不改变对象的成员变量. 代表只读函数,增加程序的可读性。
(2)不能调用类中任何非const成员函数。
本文作者:王陸
本文链接:https://www.cnblogs.com/wkfvawl/p/10973578.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步