OJ 2075 Problem E 类模板Sample

Description

定义类模板Sample,设模板参数为T,则Sample类只有一个T类型的属性。定义其构造函数、拷贝构造函数,输出与样例类似的信息。定义show函数,用于显示属性值(只输出属性值)。定义add函数,将当前对象与Sample类的另一个对象的属性值相加,和仍存入当前对象。

Input

输入2个int类型整数、2个double类型实数。

Output

见样例。

Sample Input

1
2
1.6
3.356

Sample Output

Sample 1 is created.
Sample 2 is created.
Sample 1 is copied.
Sample 1.6 is created.
Sample 3.356 is created.
Sample 3.356 is copied.
Sample 2 is copied.
3
Sample 1.6 is copied.
4.956

HINT

Append Code

int main()
{
    int a, b;
    double c, d;
    cin>>a>>b>>c>>d;
    Sample<int> s1(a), s2(b), s3(s1);
    Sample<double> s4(c), s5(d), s6(s5);
    s1.add(s2);
    s1.show();
    s5.add(s4);
    s5.show();
    return 0;
}

Accepted Code

#include <iostream>
#include <string>
#include <cstdio>
using namespace std;

template <typename T>
class Sample {
private:
    T num;
public:
    Sample(T n) : num(n) {
        cout << "Sample " << num << " is created.\n";
    }
    Sample(const Sample& S) {
        num = S.num;
        cout << "Sample " << num << " is copied.\n";
    }
    void show() {
        cout << num << endl;
    }
    Sample& add(const Sample n) {
        num += n.num;
        return *this;
    }
};
int main()
{
    int a, b;
    double c, d;
    cin>>a>>b>>c>>d;
    Sample<int> s1(a), s2(b), s3(s1);
    Sample<double> s4(c), s5(d), s6(s5);
    s1.add(s2);
    s1.show();
    s5.add(s4);
    s5.show();
    return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值