Problem E: 类的初体验(V)
Description
定义一个类Data,只有一个int类型的属性和如下方法:
1. 缺省构造函数,将属性初始化为0,并输出"Data's default constructor."。
2. 析构函数,输出:"Data # is erased.",其中“#”是属性值。
4. int getValue()——获得属性值。
5. void setValue(int)——设置属性值。
定义一个由Data的对象组成的数组类DataArray,该类包括1个int类型的属性和一个Data*类型的属性,分别为数组中元素的个数、所有的元素。定义如下方法:
2. 构造函数——参数格式请参考main函数的调用方法给出,输出:"DataArray's constructor."。
3. int getSum()——求所有Data对象属性值的和。
4. 析构函数——输出一行"DataArray's deconstructor."。
Input
若干个整数。个数大于2个。
第1个N表示后面输入的元素个数。之后有N个整数。它们用于设置main函数中DataArray的对象datas的数组元素值。
最后一个整数用于设置main函数中testP指向的对象的值。
Output
见样例~
Sample Input
Sample Output
HINT
Append Code
int
main()
{
int
i, n;
Data test, *testP;
cin>>n;
int
tmp[n];
for
(i = 0; i < n; i++)
cin>>tmp[i];
DataArray datas(n, tmp);
cout<<
"Sum is "
<<datas.getSum()<<endl;
testP =
new
Data;
cin>>n;
testP->setValue(n);
delete
testP;
return
0;
}
using namespace std;
class Data
{
private:
int d;
public:
Data()
{
d=0;
cout<<"Data's default constructor."<<endl;
}
~Data()
{
cout<<"Data "<<d<<" is erased."<<endl;
}
int getValue()
{
return d;
}
void setValue(int a)
{
d=a;
}
};
class DataArray
{
private:
int da;
Data *t;
public:
DataArray(int n,int *tmp)
{da=n;
int i;
t=new Data[n];
for(i=0; i<n; i++)
{
t[i].setValue(tmp[i]);
}
cout<<"DataArray's constructor."<<endl;
}
int getSum()
{
int i,sum=0;
for(i=0; i<da; i++)
{
sum+=t[i].getValue();
}
return sum;
}
~DataArray()
{
delete []t;
cout<<"DataArray's deconstructor."<<endl;
}
};
int main()
{
int i, n;
Data test, *testP;
cin>>n;
int tmp[n];
for (i = 0; i < n; i++)
cin>>tmp[i];
DataArray datas(n, tmp);
cout<<"Sum is "<<datas.getSum()<<endl;
testP = new Data;
cin>>n;
testP->setValue(n);
delete testP;
return 0;
}
Problem E: 类的初体验(V)的更多相关文章
- Problem D: 类的初体验(IV)
Description 定义一个类Data,只有一个int类型的属性和如下方法: 1. 缺省构造函数,将属性初始化为0,并输出"Data's default constructor.&q ...
- Problem C: 类的初体验(III)
Description 定义一个类Data,只有一个double类型的属性和如下4个方法: 1. 缺省构造函数,将属性初始化为0,并输出“Initialize a data 0”. 2. 带参构 ...
- Problem B: 类的初体验(II)
Description 定义一个类Data,只有一个double类型的属性和如下3个方法: 1. 带1个参数的构造函数——初始化属性值为参数值. 2. double getValue()——获 ...
- Problem A: 类的初体验
Description 定义一个类Data,只有一个double类型的属性和如下3个方法: 1. void init(double d);——初始化属性值. 2. double getVal ...
- SpringCloud初体验:五、Sidecar 将 PHP 这类非 Java 生态语言的服务接入 Spring Cloud
先起一个 Sidecar 服务,一个PHP服务一个应用,和PHP服务部署在同一台机子,通过 localhost 访问,这样就解决了网络开销,相当于本地进程间调用 Sidecar 服务比较简单, 1.这 ...
- 聚合类新闻client初体验
初体验的产品:今日头条(ios3.6).百度新闻(ios4.4.0).ZAKER(ios4.4.5).鲜果(ios3.8.7).中搜搜悦(ios4.0.1).Flipboard(ios2.3.9) 1 ...
- Xamarin.iOS开发初体验
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKwAAAA+CAIAAAA5/WfHAAAJrklEQVR4nO2c/VdTRxrH+wfdU84pW0
- SignalR初体验
简介 ASP .NET SignalR[1] 是一个ASP .NET 下的类库,可以在ASP .NET 的Web项目中实现实时通信.什么是实时通信的Web呢?就是让客户端(Web页面)和服务器端可以 ...
- Scala 深入浅出实战经典 第66讲:Scala并发编程实战初体验
王家林亲授<DT大数据梦工厂>大数据实战视频 Scala 深入浅出实战经典(1-87讲)完整视频.PPT.代码下载:百度云盘:http://pan.baidu.com/s/1c0noOt6 ...
随机推荐
- CSS组合选择符
组合选择符说明了两个选择器直接的关系. 目录: 后代选取器(以空格分隔) 子元素选择器(以大于号分隔) 相邻兄弟选择器(以加号分隔) 普通兄弟选择器(以破折号分隔) 后代选取器 后代选取器匹配所有值得 ...
- Java try和catch的使用介绍
尽管由Java运行时系统提供的默认异常处理程序对于调试是很有用的,但通常你希望自己处理异常.这样做有两个好处.第一,它允许你修正错误.第二,它防止程序自动终止.大多数用户对于在程序终止运行和在无论何时 ...
- 记录在tiny6410平台上采用4GSD卡来启动uboot和烧写nand flash uboot
下面这种方法是从网上转的 没有验证 环境:ubuntu 13.04一.首先制作sd启动盘: 插入SD卡 sudo dd iflag=dsync oflag=dsync if=tiny210v2- ...
- js获取本月最后一天
function getLastDay() { var seperator1 = "-"; var date=new Date; var new_mo ...
- Java继承和组合
为了保证父类有良好的封装性,不会被子类随意修改,设计父类通常应该遵循以下规则: 1.尽量隐藏父类的内部数据,尽量把父类的所有成员变量设置为 private 访问类型,不要让子类直接访问父类的成员变量: ...
- Luogu P1010 幂次方
[橙题不会做系列]QAQ 是李老师上课的题目-- 这题最开始想法是打表做.事实证明这样做也可以( 老师用的是位运算-- 这种一步步分解也能想到用递归qwq #include <algorithm ...
- Java 创建文本内容
Java 创建文本内容 import java.io.FileWriter; import java.io.IOException; public class TestFile { public st ...
- Mybaties 实现批量修改
通常我们在做批量更新的时候都会用in 去操作,但in的数据量一上来,就变的缓慢了 修改方案: <update id="updateShufflingSeq" paramete ...
- Python3 tkinter基础 Radiobutton indicatoron 改变按钮的外观 圆形/方形
Python : 3.7.0 OS : Ubuntu 18.04.1 LTS IDE : PyCharm 2018.2.4 Conda ...
- nyoj308-Substring
#include<stdio.h> #include<string.h> #include<string> #include<math.h> #incl ...