C++ 类中const成员 static 成员 const static 成员定义及初始化
来源:互联网 发布:mac怎么全屏浏览图片 编辑:程序博客网 时间:2024/04/27 18:47
C++类中的
1)、const 成员,只能在构造函数初始化列表里定义,不能再类外定义,是属于类的一个对象的常量数据成员,不是属于整个类的
2)、static成员,需要在类外定义,不需要加static关键字,方式为:type classname::staticname = ...,是属于整个类的,不是某个类的对象
3)、static const, const static成员一样,是整个类共享的常量,属于整个类,可以在类外定义,不能再初始化列表中定义,但是有一种情况:
只要初始化式是常量表达式,整形const static数据成员就可以在类的定义体中进行初始化,
如 static const int a = 1; static const char ch = '#',
也可在类外定义,在类外定义时要加const 关键字,不加static关键字
即两种定义方式 1、类中定义,2、类外定义(加const)
#include <iostream>using namespace std;class Test{public:Test(int _ca) : ca(_ca) {} const int ca; //只能在构造函数里初始化,不能在类外定义static int sa; //在类外定义,不需要加static关键字static const int sca = 3; //可在类外定义,可在类内定义,不能在初始化列表中定义 static const int scb;};int Test::sa = 2; //不加static关键字const int Test::scb = 4; //加const ,不加staticint main(){Test tt(1);cout << "tt.ca : " << tt.ca << endl;//static成员可以通过类名::进行访问(为public的情况下)cout << "Test::sa : " << Test::sa << " " << tt.sa << endl;cout << "Test::sca : " << Test::sca << " " << tt.sca << endl;cout << "Test::scb : " << Test::scb << " " << tt.scb << endl;system("pause");return 0;}
结果:
0 0
- C++ 类中const成员 static 成员 const static 成员定义及初始化
- c++类中static、const、static const成员变量初始化
- c++类中const/static/const static成员变量初始化
- static const * const 类成员 初始化
- const 成员 static 成员 const static int 成员初始化
- const 成员 static 成员 const static int 成员初始化
- C++ static const成员 初始化
- 初始化const, static, const static, static const成员变量
- 初始化const, static, const static, static const成员变量
- static,const,static const , const static成员初始化
- 类内const static(static const)成员变量初始化问题
- static const、static、const成员
- const static 和 static 成员的初始化
- 关于类中的const 及 static成员初始化实例
- 【C/C++】类中的static成员、static const成员和const成员
- 类中 const,static,reference成员的初始化
- 类中const, static, reference成员的初始化
- 类中const, static, reference成员的初始化
- MFC的消息路由
- 计算机视觉、机器学习相关领域论文和源代码大集合--持续更新……
- 玩转tableview-自定义table cell之一(全代码绘制)
- android 隐藏输入键盘的方法
- VC(VS)插入activeX控件
- C++ 类中const成员 static 成员 const static 成员定义及初始化
- iOS: Cocoa编码指南目录(Coding Guidelines for Cocoa)
- 情绪ABC理论的案例分析,呵呵
- 各类C++/C程序员面试题
- 17--2--14字符串比较
- 职场规则
- Android中Bitmap、Drawable、byte[]转换
- the difference between : cbegin(cend) and begin(end)
- 如何记录MySQL执行过的SQL语句?