11.3 (C++)

题目描述

实现一个Integer类使得main函数得到例子中的输出。

输入

20

输出
10 20
110 120
230 240

主程序 (不能修改)

#include "source.cpp"

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

int main() {
Integer x = 10;
Integer y; // constructor initializes y to 0
cin >> y;
cout << x << " " << y << endl;
Integer::increase_all(100);
cout << x << " " << y << endl;
Integer::increase_all(y);
cout << x << " " << y << endl;
}

参考答案

以下两份答案,实现方法略有差异。

Yizuodi的答案

#include <iostream>
using namespace std;

class Integer{
    public:
    int number;
    static int add_number;
    
    Integer(int x){
        number=x;
    }
    
    Integer(){
        number=0;
    }
    
    static void increase_all(int x){
        add_number+=x;
    }
    
    static void increase_all(Integer x){
        add_number+=x.number+add_number;
    }
};
int Integer::add_number=0;
ostream & operator<<( ostream & os,const Integer & t)
{
    int tmp=t.number+t.add_number;
    os << tmp;
    return os;
}

istream & operator>>( istream & is,Integer & t)
{
    is>>t.number;
    return is;
}

Mitte的答案

#include <iostream>
using namespace std;

class Integer{
public:
    static int up;
    int num;
    Integer(){
        this->num=0;
    }
    Integer(int i){
        this->num=i;
    }
    static void increase_all(int i){
        up=i;
        return;
    }
    static void increase_all(Integer i1){
        up=i1.num;
        return;
    }
};

istream & operator >> (istream& in, Integer& i1) {
    in >> i1.num;
    return in;
}
ostream & operator << (ostream &out,Integer& i1){
        i1.num+=Integer::up;
        out<<i1.num;
        return out;
}
int Integer::up = 0;
上一篇: A.1 (C++) 下一篇: 11.1 (C++)
支持 makedown语法