C++必须使用初始化列表的一种情况
2013-09-27 09:51
323 查看
/*
常量和引用必须在声明的时候赋值,所以Opera类中的rnum和lnum
必须使用初始化列表初始化
另外,C++还支持这样的赋值方式
int n(10) <==> int n = 10;(不过不知道存储结构有什么不一样)
*/
#include <iostream>
using namespace std;
class Opera
{
public:
enum type
{
TT = 12,
CC = 23
};
Opera(int num=0):knum(num), rnum(num), lnum(num)
{
cout<<"Opera:"<<knum<<endl;
}
~Opera()
{
cout<<"~Opera:"<<knum<<endl;
}
void display_rnum()
{
cout<<"rnum:"<<rnum<<endl;
}
void display_lnum()
{
cout<<"lnum:"<<lnum<<endl;
}
private:
int knum;
const int rnum;
int &lnum;
};
int main(void)
{
int n(10);
Opera op1(10);
Opera op2(20);
op1.display_lnum();
op1.display_rnum();
cout<<op1.TT<<endl;
cout<<op1.CC<<endl;
cout<<Opera::TT<<endl;
cout<<"n="<<n<<endl;
return 0;
}
常量和引用必须在声明的时候赋值,所以Opera类中的rnum和lnum
必须使用初始化列表初始化
另外,C++还支持这样的赋值方式
int n(10) <==> int n = 10;(不过不知道存储结构有什么不一样)
*/
#include <iostream>
using namespace std;
class Opera
{
public:
enum type
{
TT = 12,
CC = 23
};
Opera(int num=0):knum(num), rnum(num), lnum(num)
{
cout<<"Opera:"<<knum<<endl;
}
~Opera()
{
cout<<"~Opera:"<<knum<<endl;
}
void display_rnum()
{
cout<<"rnum:"<<rnum<<endl;
}
void display_lnum()
{
cout<<"lnum:"<<lnum<<endl;
}
private:
int knum;
const int rnum;
int &lnum;
};
int main(void)
{
int n(10);
Opera op1(10);
Opera op2(20);
op1.display_lnum();
op1.display_rnum();
cout<<op1.TT<<endl;
cout<<op1.CC<<endl;
cout<<Opera::TT<<endl;
cout<<"n="<<n<<endl;
return 0;
}
相关文章推荐
- C++构造与析构(8) - 什么时候必须使用初始化列表
- 必须使用初始化列表的情况
- 必须使用初始化列表的几种情况
- C++哪些数据必须使用初始化列表进行初始化?
- 什么情况下必须使用C++的初始化列表
- C++——必须使用复制构造函数的情况
- C++定义构造函数必须使用初始化列表的场合
- C++中使用初始化列表的情况
- c++ 必须使用构造函数初始化列表初始化的情况
- c++必须使用初始化列表情况总结
- C++必须使用【初始化列表】初始化数据成员的三种情况
- C++:四种必须使用初始化列表情况
- C++中只能使用初始化列表不能使用赋值的情况
- 在C++中,要实现动态联编,必须使用(基类指针)调用虚函
- 未提供头文件情况下,C++中使用COM
- C++工程代码打包的dll在C#工程上使用注意点!变量对应关系与dll调用出错情况。
- Sqlserver 中必须使用分号的两种情况--【叶子】
- 什么时候必须使用初始化列表
- C/C++:在不使用第三个变量的情况下实现两个变量的交换
- C++拷贝构造函数的参数为什么必须使用引用类型