C++必须使用初始化列表的一种情况

来源:互联网 发布:两个移动硬盘对拷数据 编辑:程序博客网 时间:2024/05/22 02:09
/*
常量和引用必须在声明的时候赋值,所以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;
}
原创粉丝点击