首页 / C++ / C++中的const
C++中的const
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了C++中的const,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2455字,纯文字阅读大概需要4分钟。
内容图文
![C++中的const](/upload/InfoBanner/zyjiaocheng/672/5f475e8798224dedb471605f7e222b91.jpg)
关键字const
用const修饰的东西,初始化后就无法改变,用于保护数据
常对象 |
类名 const 对象名[实参表] const 类名 对象名[实参表] |
A const a() const A a() |
常成员数据 | const 数据类型 数据名 | const int a |
常成员函数 | 类型名 函数名(参数表)const |
int a()const{} pubic int a()const{} |
常指针 | 类名 * const 指针名 |
A * cosnt p A * const p=&a; |
指向常对象的指针 | const 类型 * 指针名 | const A *p |
构造函数不能用const修饰
参数表只能构造函数使用
常对象必须定义时就初始化,之后就不变了。类的常对象,除了创建时自动用构造函数,销毁时自动用析构函数外,它只能调用常成员函数。
常成员数据的初始化只能通过构造函数的参数表进行初始化,如果没有初始化,会报错,初始化后就无法更改
class Box //长方体类 { //补充2个成员函数使程序可以执行 // 在此处补充你的代码 /** * 注意:构造函数不能使用const修饰 * const数据成员只能在构造函数的初始化表中初始化 * const成员函数中不允许修改任何数据成员的值,但可以使用他们 * const对象只允许调用const成员函数 */ public : Box(int a,int b,int c) :length(a),width(b),height(c){}//使用构造函数的参数初始化表进行常成员数据的初始化 int area()const { int a=(length*width+length*height+width*height)*2;//函数自己定义的变量 kk=58;//全局非const变量 return kk; } private: const int length; //长 const int width; //宽 int height; //高 };
int main()
{
const Box b(1, 1, 1);
cout << b.area() << endl; //输出表面积 如果area不是常成员函数,就不能调用
return 0;
}
常成员函数不能修改任何成员数据的值,但可以直接使用,只是不能用类里面定义的成员数据,类外定义的全局非const变量可以改,函数内自己定义的变量可以改
常指针 保护指针 指向变量后指针存的地址无法更改,指针指向的变量可以改变,无法指向常变量
int a=0; const int a=0;
int *const p=&a; int *const p=&a; //会报错,不能指向常变量
a=9;//变量可以改变
*p=9;//报错,不能通过指针改变变量的值
int b=5;
p=&b;//会报错,不能更改指向
指向常变量的指针,不保护指针,它可以指向非const修饰的变量,防止非const变量被通过指针修改
int a=0; const int a=0;
const int *p=&a; //可以指向变量 const int *p=&a; //可以指向常变量
a=9;//不报错,变量可以改变 a=9;//报错,常变量不能改变
*p=9;//报错,不能通过指针改变变量的值 *p=9;//报错,不能通过指针改变变量的值
int b=5; int b=5;
p=&b;//不会报错,能更改指向 p=&b;//不会报错,能更改指向
无论是常指针还是指向常变量的指针,都不能通过指针改变量的值
内容总结
以上是互联网集市为您收集整理的C++中的const全部内容,希望文章能够帮你解决C++中的const所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。