C++ 面向对象程序设计:圆类实现与文件读写
#include
/请在这里填写第一部分答案/
void f(Plane const &p) { cout<<p.area()<<endl; cout<<p.length()<<endl; } //主函数 int main(void) { double d1,d2; cin>>d1>>d2; Point p(d1,d2); Circle c;
/请在这里填写第二部分答案/
f(c);
return 0;
}
###输入样例: 1.0 2.1
###输出样例: 30.1907 19.4779
参考答案:
在Point类中添加运算符<<和>>的重载实现:
ostream & operator << (ostream &out, const Point &p) { out<<'('<<p.x<<','<<p.y<<')'; return out; } istream & operator >> (istream &in, Point &p) { in>>p.x>>p.y; return in; }
在Circle类中添加运算符<<和>>的重载实现:
ostream & operator << (ostream &out, const Circle &c) { out<<'圆心坐标为'<<(const Point &)c<<' 半径为'<<c.radius<<endl; return out; } istream & operator >> (istream &in, Circle &c) { in>>(Point &)c>>c.radius; return in; }
在main函数中实现文件读写操作:
double d1,d2; cin>>d1>>d2; Point p(d1,d2); Circle c; cin>>c; ofstream out('Circle.txt'); out<<p<<endl; out<<c<<endl; out.close(); ifstream in('Circle.txt'); in>>p>>c; in.close(); cout<<p<<endl; cout<<c<<endl;
完整代码如下:
原文地址: https://www.cveoy.top/t/topic/okBR 著作权归作者所有。请勿转载和采集!