Untitled
unknown
c_cpp
a year ago
1.6 kB
1
Indexable
Never
#ifndef INC_5_ELLIPSE_H #define INC_5_ELLIPSE_H #include <iostream> #include <cmath> #include "Point.h" class Ellipse : public Point { //наслідування від класу Point public: Ellipse() : Point(), xrad_(0), yrad_(0) {} //Конструктор за замовчуванням Ellipse(double x, double y) : Point(x, y), xrad_(0), yrad_(0) {} //Конструктори ініціалізації Ellipse(double x, double y, double xrad, double yrad) : Point(x, y), xrad_(xrad), yrad_(yrad) {}; ~Ellipse() = default; //Деструктор // перевизначення віртуального методу area(). Перевизначуємо за допомогою ключового слова override (його можна не вказувати, але рекомендується). Перевизначення - це коли ми переписуємо віртуальний метод базового класу double area() override { //Обчислення площі return 4 * xrad_ * yrad_ * M_PI; } double xrad() const { return xrad_; } // getter для xrad_ double yrad() const { return yrad_; } // getter для уrad_ // перевантаження оператора виводу (<<) friend std::ostream& operator<<(std::ostream &os, const Ellipse &ellipse) { os << static_cast<const Point&>(ellipse) <<"; " << ellipse.xrad() << "; " << ellipse.yrad(); return os; } protected: double xrad_; private: double yrad_; }; #endif //INC_5_ELLIPSE_H