//Point类的实现 Point::Point(double xv, double yv) { x = xv; y = yv; } void Point::setX(double xv) { x = xv; } void Point::setY(double yv) { y = yv; } double Point::getX() const { return x; } double Point::getY() const { return y; } 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类的实现 const double Circle::PI = 3.141592653589793; Circle::Circle(double xv, double yv, double r) : Point(xv, yv) { radius = r; } void Circle::setR(double r) { radius = r; } double Circle::getR() const { return radius; } double Circle::area() const { return PI * radius * radius; } double Circle::length() const { return 2 * PI * radius; } ostream& operator<<(ostream& out, const Circle& c) { out << "圆心:" << static_cast(c) << ",半径:" << c.radius << ",面积:" << c.area() << ",周长:" << c.length(); return out; } istream& operator>>(istream& in, Circle& c) { in >> static_cast<Point&>(c) >> c.radius; return in; }

//main函数的实现 int main() { double d1, d2; cin >> d1 >> d2; Point p(d1, d2); Circle c; cin >> c; ofstream outfile("output.txt"); outfile << p << "\n" << c << endl; outfile.close(); ifstream infile("output.txt"); Point p_in; Circle c_in; infile >> p_in >> c_in; infile.close(); cout << p_in << endl << c_in << endl; f(c_in); return 0; }

void f(Plane const& p) { cout << p.area() << endl; cout << p.length() << endl; }

C++ 面向对象程序设计:圆类设计与运算符重载

原文地址: https://www.cveoy.top/t/topic/okBV 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录