Problem A: 类型可变的类
Description
定义一个Data类,至少包含1个int类型的数据成员、1个double类型的数据成员,定义其构造函数和析构函数,使得程序执行时,能产生样例所示的结果。
Input
输入2行,第1行是1个int类型的数据,第2行是1个double类型的数据。
Output
见样例
Sample Input
120
3.14
Sample Output
A default object is created.
An integer object 120 is created.
A double object 3.14 is created.
The double object 3.14 is erased.
The integer object 120 is erased.
The default object is erased.
HINT
Append Code
int main()
{
Data d1;
int i;
cin>>i;
Data d2(i);
double d;
cin>>d;
Data d3(d);
return 0;
}
Sample Code
#include<iostream>
using namespace std;
class Data
{
int x;
double y;
int c;
public:
Data():c(0){cout<<"A default object is created."<<endl;}
Data(int a):x(a),c(1){cout<<"An integer object "<<x<<" is created."<<endl;}
Data(double b):y(b),c(2){cout<<"A double object "<<y<<" is created."<<endl;}
~Data()
{
if(c==0) cout<<"The default object is erased."<<endl;
else if(c==1) cout<<"The integer object "<<x<<" is erased."<<endl;
else if(c==2) cout<<"The double object "<<y<<" is erased."<<endl;
}
};
int main()
{
Data d1;
int i;
cin>>i;
Data d2(i);
double d;
cin>>d;
Data d3(d);
return 0;
}