const关键字
-
语言中const用法回顾
(1)const变量,比宏定义的优势是带数据类型,可以让编译器帮我们做类型检查
(2)const数组,和常量变量类似
(3)const指针,三种情况:const int *p, int * const p, const int *const p; -
C++中const新增用法
(1)const引用,主要用于函数传参,限制函数内部对实参进行修改
(2)const成员函数,限制函数内部对类的成员变量的修改
void printValue(const int& value) {
// value 是 const 引用,不能修改
std::cout << "Value: " << value << std::endl;
}
//要求传地址,形参定义时加const是为了告知所有人(负责实现函数的,调用该函数的,编译器函数内不会修改传参所指向实参
int test() {
int x = 10;
printValue(x); // 传递变量
std::cout << "x : " << x << std::endl;
printValue(20); // 传递常量
std::cout << "x : " << x << std::endl;
printValue(x + 5); // 传递表达式的结果
std::cout << "x : " << x << std::endl;
return 0;
}
const有关的其他几个关键字
mutable
(1)mutable用来突破const成员函数的限制,让其可以修改特定的成员变量
(2)案例参考:https://www.cnblogs.com/yongdaimi/p/9565996.html
constexpr
(1)用法如下:n
constexpr int multiply (int x, int y)
{
return x * y;
}
const int val = multiply( 10, 10 ); // 将在编译时计算
const int val = 100;
(2)本质上是让程序利用编译时的计算能力,增加运行时效率
(3)由C++11引入,但是实际有一些编译器并不支持,需实际测试
C++20新引入的2个
(1)constinit https://zh.cppreference.com/w/cpp/language/constinit
(2)consteval https://zh.cppreference.com/w/cpp/language/consteval
模板编程的几个关键字
总结
学习记录,侵权联系删除。
来源:朱老师物联网大课堂