POJ C++程序设计 编程题#1 编程作业—运算符重载

编程题 #1

来源: POJ (Coursera声明:在POJ上完成的习题将不会计入Coursera的最后成绩。)

注意: 总时间限制: 1000ms 内存限制: 65536kB

描述

下面程序的输出是:

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

样例输入

样例输出

3+4i
5+6i

 1 #include <iostream>
 2 #include <cstring>
 3 #include <cstdlib>
 4 using namespace std;
 5 class Complex {
 6 private:
 7     double r,i;
 8 public:
 9     void Print() {
10         cout << r << "+" << i << "i" << endl;
11     }
12 // 在此处补充你的代码
13     Complex & operator=(string s) {
14         int position = s.find("+", 0);
15         string firstPart = s.substr(0, position);
16         string secondPart = s.substr(position+1, s.length() - position - 2);
17         r = atof(firstPart.c_str());
18         i = atof(secondPart.c_str());
19         return *this;
20     }
21 };
22 int main() {
23     Complex a;
24     a = "3+4i"; a.Print();
25     a = "5+6i"; a.Print();
26     return 0;
27 }