C++ 面向对象程序设计:圆类设计与运算符重载
//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
//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; }
原文地址: https://www.cveoy.top/t/topic/okBV 著作权归作者所有。请勿转载和采集!