1. 程式人生 > >程式設計作業: 程式設計作業—運算子過載

程式設計作業: 程式設計作業—運算子過載

4w3:第四周程式填空題1

描述

下面程式的輸出是:

3+4i

5+6i

請補足Complex類的成員函式。不能加成員變數。

#include <iostream>
#include <cstring>
#include <cstdlib>
using namespace std;
class Complex {
private:
    double r,i;
public:
    void Print() {
        cout << r << "+" << i << "i" << endl;
    }
// 在此處補充你的程式碼
};
int main() {
    Complex a;
    a = "3+4i"; a.Print();
    a = "5+6i"; a.Print();
    return 0;
}

輸入無輸出3+4i
5+6i樣例輸入

None

樣例輸出

3+4i
5+6i

 

Approach:

#include <iostream>
#include <cstring>
#include <cstdlib>
using namespace std;
class Complex {
private:
    double r,i;
public:
    void Print() {
        cout << r << "+" << i << "i" << endl;
    }
    Complex(): r(0), i(0){};
    Complex& operator=(string s) {
        int pos = s.find('+', 0);
        string sTmp = s.substr(0, pos);
        r = stoi(sTmp);
        sTmp = s.substr(pos+1);
        i = stoi(sTmp);
    }
};
int main() {
    Complex a;
    a = "3+4i"; a.Print();
    a = "5+6i"; a.Print();
    return 0;
}