Untitled

 avatar
unknown
c_cpp
2 years ago
1.0 kB
2
Indexable
#ifndef INC_5_CIRCLE_H
#define INC_5_CIRCLE_H

#include <iostream>
#include "Ellipse.h"

class Circle : private Ellipse { // наслідування від класу Ellipse

public:
    Circle() : Ellipse() {};  //Конструктор за замовчуванням
    Circle(double x, double y) : Ellipse(x, y) {}  //Конструктори ініціалізації
    Circle(double x, double y, double rad) : Ellipse(x, y, rad, rad) {}
    ~Circle() = default;  //Деструктор

    // Обчислення площі. Перевизначаємо virtual метод area(), тут пояснення таке ж, як і в класі Circle =)
    double area() override {
        auto &ellipse = static_cast<Ellipse &>(*this);
        return ellipse.area();
    }

    // перевантаження методу виведення (<<)
    friend std::ostream& operator<<(std::ostream &os, const Circle &circle) {
        os << static_cast<const Ellipse&>(circle);
        return os;
    }

};
Editor is loading...