Правильно ли я использую ООП?
Всем привет! Изучаю C++, нашел такое условие задачи. Решил для него написать код. Как проверить если я правильно использую принципы ООП? Правилен ли мой код?
Условие: Создайте иерархию классов Сторона – Квадрат – Аквариум. Класс Квадрат должен содержать метод для вычисления площади квадрата. Класс Аквариум должен содержать метод для вычисления количества рыбок могущих жить в аквариуме (на одну рыбку надо 20 см3 ). Последние два класса в иерархии должны иметь конструкторы. Создайте метод MAIN, в котором создается 2 Аквариума (т.е. 2 объекта класса Аквариум), определяется в каком из аквариумов может жить больше рыбок. Необходимо также показывать все характеристики создаваемых объектов.
#include <iostream>
#include <string>
#include <math.h>
using namespace std;
class Side{
public:
int size;
void show_size(){
cout << "Размер стороны: " << size << "см." << endl;
}
void set_size(int size){
this->size = size;
}
};
class Square : public Side{
public:
Square(){}
int perform_area(){
return pow(this->size,2);
}
void show_area(int area){
cout << "Площадь квадрата равна: " << area << endl;
}
};
class Aquarium : public Square{
public:
Aquarium(int size){
this->size = size;
}
int count;
int count_fish(int area_square){
this->count = 6*area_square/20;
return this->count;
}
};
int main(){
int area_square;
Aquarium a1(5);
area_square = a1.perform_area();
a1.show_area(area_square);
cout << "Кол-во рыбок могущих жить в аквариуме: " << a1.count_fish(area_square) << endl;
Aquarium a2(8);
area_square = a2.perform_area();
a2.show_area(area_square);
cout << "Кол-во рыбок могущих жить в аквариуме: " << a2.count_fish(area_square) << endl;
if (a1.count > a2.count) {
cout << "В первом аквариуме поместиться больше рыб" << endl;
}else{
cout << "Во втором аквариуме поместиться больше рыб" << endl;
}
return 0;
}