• const常量对象,无法改变数据,只能引用尾部带const方法
  • 类的成员如果是const,可以默认初始化,也可以构造的初始化,不可在构造函数内部初始化
  • 类中的const成员,无法直接修改,可以间接修改
  • 类的成员函数const三种情形:1.返回值const,2.返回常量,3.参数const,可读不可写,尾部const,常量对象可读不可以写,变量可以访问
  • const不适用于构造与析构
  • mutable不受const锁定

代码示例

 #include <iostream>
using namespace std; //创建对象的时候,const常量对象,无法改变数据,只能引用尾部带const方法
//类的成员如果是const,可以默认初始化,也可以构造的初始化,不可在构造函数内部初始化
//类中的const成员,无法直接修改,可以间接修改
//类的成员函数const三种情形:1.返回值const,2.返回常量,3.参数const,可读不可写,尾部const,常量对象可读不可以写,变量可以访问
//const不适用于构造与析构 class myclass
{
public:
int x;
int y;
//如果有常量构建的时候必须初始化,或者默认初始化
const int z; myclass(const int a):z(a)
{
} //后面加const表明不改变原生数据
void show() const
{
cout << z << endl;
} //保护参数不被修改
void change(const int a,const int b)
{
x = a;
y = b;
} const int getx() const //返回一个常量,函数有保护作用
{
return x;
}
}; //内部const
void mai1n()
{
//常量对象,只能调用带const的方法,无法修改数据
const myclass my1();
//声明为const不能随意修改
//my1.x = 20;
//间接修改类中的const变量
int *p = const_cast<int *>(&my1.z);
*p = ;
my1.show(); cin.get();
} //外部const class myclass2
{
public:
int x;
int y;
int z; //可以在const函数中改变,不被const锁定
mutable int time; myclass2(int a = , int b = , int c = ) :x(a), y(b), z(c)
{ } void show() const
{
time = ;
cout << x << y << z << endl;
} void set(int a,int b,int c)
{
x = a;
y = b;
z = c;
}
}; void main()
{
//这个对象不能改变数据
const myclass2 my(, , );
const myclass2 *p = new myclass2(, , ); //不能改变指针的指向
myclass2 *const p2 = new myclass2(, , );
//既不能改变指向也不能改变数据
const myclass2 *const p3 = new myclass2(, , );
p2->show();
}

最新文章

  1. Linux系统编程-防止僵尸进程产生的常用方法
  2. WPF面板布局介绍Grid、StackPanel、DockPanel、WrapPanel
  3. 粒子群算法 Particle Swarm Optimization, PSO(转贴收藏)
  4. HTML 5中的文件处理之FileAPI(转载)
  5. .NET之美——1.1 C#中的泛型
  6. PL SQL Developer 使用总结
  7. ‘for’ loop initial declarations are only allowed in C99 mode
  8. AngularJS心得体会
  9. 201521123017 《Java程序设计》第4周学习总结
  10. ionic笔记
  11. 06mycat使用haproxy进行负载均衡
  12. .NET垃圾回收机制(二)
  13. Kindle:自动追更之发送邮件
  14. K-means之亚洲杯
  15. (转)经验分享:CSS浮动(float,clear)通俗讲解
  16. Oracle exp/imp 导出/导入
  17. [android] 切换按钮-自定义控件
  18. Socket心跳包机制【转】
  19. git切换分支(自记)
  20. 黑客编程教程(八)编写NT服务

热门文章

  1. PGA和UGA内存的使用情况
  2. IE11 mobile 的 UA(User-Agent)
  3. 002.ES2015和ES2016新特性--箭头函数.md
  4. Linux 下段错误 core文件
  5. codeforces 527 C Glass Carving
  6. webService接口发布失败问题
  7. Bootstrap modal.js 源码分析
  8. 洛谷 P2542 [AHOI2005]航线规划 树链剖分_线段树_时光倒流_离线
  9. NodeJS学习笔记 (27)实用工具模块-util(ok)
  10. 05002_Linux的安装