Description

定义一个类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."。

Input

输入为11个int类型范围内的整数。

Output

见样例~~~

Sample Input

1 2 3 4 5 6 7 8 9 10 100

Sample Output

Data's default constructor. Data's default constructor. Data's default constructor. Data's default constructor. Data's default constructor. Data's default constructor. Data's default constructor. Data's default constructor. Data's default constructor. Data's default constructor. DataArray's default constructor. Sum is 55 Data 100 is created. aData = 100 Data 100 is erased. DataArray's deconstructor. Data 10 is erased. Data 9 is erased. Data 8 is erased. Data 7 is erased. Data 6 is erased. Data 5 is erased. Data 4 is erased. Data 3 is erased. Data 2 is erased. Data 1 is erased.

HINT

Append Code

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;
}

Problem D: 类的初体验(IV)的更多相关文章

  1. Problem E: 类的初体验(V)

    Description 定义一个类Data,只有一个int类型的属性和如下方法: 1.   缺省构造函数,将属性初始化为0,并输出"Data's default constructor.&q ...

  2. Problem C: 类的初体验(III)

    Description 定义一个类Data,只有一个double类型的属性和如下4个方法: 1.   缺省构造函数,将属性初始化为0,并输出“Initialize a data 0”. 2.  带参构 ...

  3. Problem B: 类的初体验(II)

    Description 定义一个类Data,只有一个double类型的属性和如下3个方法: 1.   带1个参数的构造函数——初始化属性值为参数值. 2.   double getValue()——获 ...

  4. Problem A: 类的初体验

    Description 定义一个类Data,只有一个double类型的属性和如下3个方法: 1.    void init(double d);——初始化属性值. 2.   double getVal ...

  5. SpringCloud初体验:五、Sidecar 将 PHP 这类非 Java 生态语言的服务接入 Spring Cloud

    先起一个 Sidecar 服务,一个PHP服务一个应用,和PHP服务部署在同一台机子,通过 localhost 访问,这样就解决了网络开销,相当于本地进程间调用 Sidecar 服务比较简单, 1.这 ...

  6. 聚合类新闻client初体验

    初体验的产品:今日头条(ios3.6).百度新闻(ios4.4.0).ZAKER(ios4.4.5).鲜果(ios3.8.7).中搜搜悦(ios4.0.1).Flipboard(ios2.3.9) 1 ...

  7. Xamarin.iOS开发初体验

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKwAAAA+CAIAAAA5/WfHAAAJrklEQVR4nO2c/VdTRxrH+wfdU84pW0

  8. .NET平台开源项目速览(15)文档数据库RavenDB-介绍与初体验

    不知不觉,“.NET平台开源项目速览“系列文章已经15篇了,每一篇都非常受欢迎,可能技术水平不高,但足够入门了.虽然工作很忙,但还是会抽空把自己知道的,已经平时遇到的好的开源项目分享出来.今天就给大家 ...

  9. Spring之初体验

                                     Spring之初体验 Spring是一个轻量级的Java Web开发框架,以IoC(Inverse of Control 控制反转)和 ...

随机推荐

  1. mysql 试题总结

    一.MySQL的复制原理以及流程 1.复制基本原理流程 1.主:binlog线程——记录下所有改变了数据库数据的语句,放进master上的binlog中: 2.从:io线程——在使用start sla ...

  2. 杨韬的Python/Jupyter学习笔记

    Python语法学习 https://zhuanlan.zhihu.com/p/24162430 Python 安装库 安装Jupyter Notebook 先安装Python cmd 进入K:\Ju ...

  3. RxJava 详解——简洁的异步操作(二)

    上次说的两个例子,事件的发出和消费都是在同一个线程的.如果只用上面的方法,实现出来的只是一个同步的观察者模式.观察者模式本身的目的就是异步机制,因此异步对于 RxJava 是至关重要的.而要实现异步, ...

  4. 创建servlet程序知识点详解---servlet-day05

    jdbc.properties怎么写? 把秘密改为自己电脑设置的 password url 3306 是安装mysql时所确定的端口  后面还可以接字符集的限定 #1 jsp是什么?(java ser ...

  5. 模块_pip、os模块

    一个python文件就是一个模块 1.标准模块 python自带的模块就是标准模块,也就是可以直接import进来的就是标准模块 import json import random import da ...

  6. php 数组数字 补零

    $hour_list = range(0,24); foreach($hour_list as $key=>$val){ $hour_list[$key] = str_pad($val, 2, ...

  7. 0.3:Before We Start

    文章著作权归作者所有.转载请联系作者,并在文中注明出处,给出原文链接. 本系列原更新于作者的github博客,这里给出链接. 需要做的准备 首先肯定是需要安装Unity,我这里选择的版本是Unity ...

  8. 自制操作系统Antz(3)——进入保护模式 (中) 直接操作显存

    Antz系统更新地址: https://www.cnblogs.com/LexMoon/category/1262287.html Linux内核源码分析地址:https://www.cnblogs. ...

  9. opencv学习之路(23)、轮廓查找与绘制(二)——访问轮廓每个点

    一.简介 二.画出每个轮廓的每个点 #include "opencv2/opencv.hpp" using namespace cv; void main() { Mat src= ...

  10. 通过WireShark抓取iPhone联网数据方法

    通过WireShark抓取iPhone联网数据方法 命令行 rvictl -s <UDID> 然后再wireshark选择rvi0进行抓包即可 抓包完后,移除用命令 rvictl -x & ...