定义一个类Data,只有一个int类型的属性和如下方法:
1. 缺省构造函数,将属性初始化为0,并输出"Data‘s default constructor."。
2. 带参构造函数,将属性初始化为指定参数,并输出"Data # is created.",其中“#”即参数值。
3. 析构函数,输出:"Data # is erased.",其中“#”是属性值。
4. int getValue()——获得属性值。
5. void setValue(int)——设置属性值。
定义一个由Data的对象组成的数组类DataArray,包括:
1. 由10个Data类的对象组成的对象数组。
2. 缺省构造函数——不做任何操作,仅输出一行"DataArray‘s default constructor."。
3. void setValues(int d[10])——设置10个Data的对象的属性值分别为参数d的10个值。
4. int getSum()——求10个Data对象属性值的和。
5. 析构函数——输出一行"DataArray‘s deconstructor."。
int
main()
{
DataArray dataArray;
Data *aData;
int
data[10], tmp;
int
i;
for
(i = 0; i < 10; i++){
cin>>data[i];
}
dataArray.setValues(data);
cout<<
"Sum is "
<<dataArray.getSum()<<endl;
cin>>tmp;
aData =
new
Data(tmp);
cout<<
"aData = "
<<aData->getValue()<<endl;
delete
aData;
return
0;
}
代码
#include <iostream>
using namespace std;
class Data
{
int a;
public:
Data():a(0){cout<<"Data‘s default constructor."<<endl;}
Data(int x):a(x)
{
cout<<"Data "<<a<<" is created."<<endl;
}
~Data()
{
cout<<"Data "<<a<<" is erased."<<endl;
}
int getValue()
{
return a;
}
void setValue(int y)
{
a=y;
}
};
class DataArray
{
Data array[10];
public:
DataArray(){cout<<"DataArray‘s default constructor."<<endl;}
void setValues(int d[10])
{
for(int i=0;i<10;i++)
{
array[i].setValue(d[i]);
}
}
int getSum()
{
int sum=0;
for(int i=0;i<10;i++)
{
sum+=array[i].getValue();
}
return sum;
}
~DataArray()
{
cout<<"DataArray‘s deconstructor."<<endl;
}
};
int main()
{
DataArray dataArray;
Data *aData;
int data[10], tmp;
int i;
for (i = 0; i < 10; i++){
cin>>data[i];
}
dataArray.setValues(data);
cout<<"Sum is "<<dataArray.getSum()<<endl;
cin>>tmp;
aData = new Data(tmp);
cout<<"aData = "<<aData->getValue()<<endl;
delete aData;
return 0;
}