首页 / C++ / C++中const关键字的用法与总结
C++中const关键字的用法与总结
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了C++中const关键字的用法与总结,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1928字,纯文字阅读大概需要3分钟。
内容图文
![C++中const关键字的用法与总结](/upload/InfoBanner/zyjiaocheng/713/a57e2040017b43b9996e9ca065857468.jpg)
看完了c++ primer的基础篇,对const还是有点陌生,在这里小小地总结一下吧。
1) const与变量
在变量的定义前加上const修饰符即可完成const对象的创建。
const int val = 5;
const变量的值不能改变。
val = 5; //error:assignment of read-only variable 'val'
需要注意的是,const变量必须初始化,因为一旦定义了const变量,其值便无法改变,故必须有初始值。
const int val2; //error:uninitialized const 'val2'
默认状态下,const对象仅在文件内有效
//file1.cc
const int val3 = 5;
int val4 = 6;
//file2.cc
//...
extern const int val3;
extern int val4;
cout << val3 << endl; //error:undefined reference to 'val3'
cout << val4 << endl; //ok
如果需要多个文件共享const变量,则只需在其声明和定义前加上关键字extern即可。
//file1.cc
extern const int val3 = 5;
int val4 = 6;
//file2.cc
//...
extern const int val3;
extern int val4;
cout << val3 << endl; //ok
cout << val4 << endl; //ok
2) const和指针
const double pi = 3.14; //constant value
double *ptr = π //error
const double *cptr = π //ok
*cptr = 3.15; //error
double dval = 3.14;
cptr = &dval; //ok
*cptr = 3.15; //error
int errNumb = 0;
int *const curErr = &errNumb; //const pointer
const double *const pip = π
顶层const表示指针本身是个常量
底层const表示指针所指的对象是一个常量
3) const与函数
void fcn(const int i){//...}
//fcn能够读取i,但不能修改i
函数设计时,对于较复杂的非内置类型应该尽量使用常量引用,值传递会造成不必要的浪费。
void func(string&);
const string str;
func(str);//error
func("something")//error
如上例,如果只是想使用字符串的值,则形参类型应为const string&,否则会限制所能接受形参的类型,并会给人一种误导,即函数可以修改它的实参的值。
4) const与类
使用const限定符修饰类的对象,则在该对象的整个生命周期中,其数据成员永远不会被更改。
const class_name object;
在类的函数成员声明中,如果在参数列表后面加上const,就说明这个函数不能修改对象的任何数据成员(mutable成员除外,其值总是能够被修改)。const实际上修饰隐式传入函数的this指针。
struct A {
void func() const { val = 0; } //error
private:
int val;
}
内容总结
以上是互联网集市为您收集整理的C++中const关键字的用法与总结全部内容,希望文章能够帮你解决C++中const关键字的用法与总结所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。