描述
下面程序的输出是:
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
解答
运算符的重载。
substr函数:
s.substr(pos,n);
解释:返回一个string,包含s中从pos开始的n个字符的拷贝。pos的默认值为0,n默认为s.length()-1,即拷贝整个s
atof、atoi
atof:ASCII to floating point numbers
atoi:ASCII to integer
#include <iostream>
#include <cstring>
#include <cstdlib>
using namespace std;
class Complex {
private:
double r,i;
public:
void Print() {
cout << r << "+" << i << "i" << endl;
}
Complex &operator =(string s)
{
int pos=s.find('+');
string rr=s.substr(0,pos);
r=atof(rr.c_str());
string ii=s.substr(pos+1,s.length()-2);
i=atof(ii.c_str());
return *this;
}
};
int main() {
Complex a;
a = "3+4i"; a.Print();
a = "5+6i"; a.Print();
return 0;
}