特殊数据类型成员变量的初始化
来源:互联网 发布:win7 java环境变量配置 编辑:程序博客网 时间:2024/04/29 09:48
有些成员变量的数据类型比较特别,它们的初始化方式也和普通数据类型的成员变量有所不同。这些特殊的类型的成员变量包括:
a. 常量型成员变量
b. 引用型成员变量
c. 静态成员变量
d. 整型静态常量成员变量
e. 非整型静态常量成员变量
对于常量型成员变量和引用型成员变量的初始化,必须通过构造函数初始化列表的方式进行。在构造函数体内给常量型成员变量和引用型成员变量赋值的方式是行不通的。
静态成员变量的初始化也颇有点特别。
参考下面的代码以及其中注释:
// Initialization of Special Da
#include<iostream>
usingnamespace std;
class BClass
{
public:
BClass() : i(1), ci(2), ri(i) //对于常量型成员变量和引用型成员变量,必须通过
{ //参数化列表的方式进行初始化。在构造函数体内进
} //行赋值的方式,是行不通的。
void print_values()
{
cout << "i =\t" << i << endl;
cout << "ci =\t" << ci << endl;
cout << "ri =\t" << ri << endl;
cout << "si =\t" << si << endl;
cout << "csi =\t" << csi << endl;
cout << "csi2 =\t" << csi2 << endl;
cout << "csd =\t" << csd << endl;
}
private:
int i; // 普通成员变量
const int ci; // 常量成员变量
int &ri; // 引用成员变量
static int si; // 静态成员变量
//static int si2 = 100; // error: 只有静态常量成员变量,才可以这样初始化
static constint csi; // 静态常量成员变量
static constint csi2 = 100; // 静态常量成员变量的初始化(Integral type) (1)
static constdouble csd; // 静态常量成员变量(non-Integral type)
//static const double csd2 = 99.9; // error: 只有静态常量整型数据成员才可以在类中初始化
};
//静态成员变量的初始化(Integral type)
int BClass::si = 0;
//静态常量成员变量的初始化(Integral type)
constint BClass::csi = 1;
//静态常量成员变量的初始化(non-Integral type)
constdouble BClass::csd = 99.9;
//在初始化(1)中的csi2时,根据Stanley B. Lippman的说法下面这行是必须的。
//但在VC2003中如果有下面一行将会产生错误,而在VC2005中,下面这行则可有可无,这个和编译器有关。
constint BClass::csi2;
int main(void)
{
BClass b_class;
b_class.print_values();
return 0;
}
From:http://patmusing.blog.163.com/blog/static/13583496020101814811570/
- 特殊数据类型成员变量的初始化
- 特殊数据类型成员变量的初始化
- 特殊数据类型成员变量的初始化
- 特殊数据类型成员变量的初始化
- 特殊数据类型成员变量的初始化
- 特殊数据类型成员变量的初始化
- 特殊数据类型成员变量的初始化
- 特殊数据类型成员变量的初始化
- 特殊数据类型成员变量的初始化
- 特殊数据类型成员变量的初始化
- 特殊数据类型成员变量的初始化
- 特殊数据类型成员变量的初始化
- 特殊数据类型成员变量的初始化
- 特殊数据类型成员变量的初始化
- 特殊数据类型成员变量的初始化
- 特殊数据类型成员变量的初始化(转)
- c++类中特殊数据类型成员变量的初始化
- 特殊成员变量的初始化
- vim使用笔记
- iOS开发-http协议、get和post请求
- XCODE调试时不显示变量值/指针地址的解决方案
- java学习日志~1 俄罗斯方块
- 杭电2044——I64
- 特殊数据类型成员变量的初始化
- REVEAL APP FOR IOS 永久试用
- usaco 1.1.1的题解
- 移动web开发基础知识
- springMVC3学习(七)--Interceptor拦截器
- NGUI之响应鼠标事件(划过、停留、点击等)
- 引人深思的9张数据逻辑图
- String中文字符转码
- MFC Radio Button控件编程