Demigodd
@Demigodd

Как создать class Triangle, из class`a Point?

Вот класс point, точка которая состоит из координата..
class Point {
    protected:
        float x, y;
    public:
        Point() {
            std::cout << "Point constructor\n";
        }
        Point(float x, float y):x(x), y(y) {
            std::cout << "Point constructor\n";
        }
        ~Point() {
            std::cout << "Point destructor\n";
        }
        
        float getX() {
            return x;
        }
        float getY() {
            return y;
        }
        
        void setX(float x) {
            this->x = x; 
        }
        void setY(float y) {
            this->y = y;
        }
};


Просто не могу представить, как вообще можно создать треугольник через класс ? К примеру берем 3 точки а дальше что ?
class Triangle: public Point {
    protected:
        Point p1, p2, p3;
    public:
        Triangle() {
            
        }
        ~Triangle() {
            
        }
       double getP(){
            return p1 + p2 + p3;
        }
};
  • Вопрос задан
  • 934 просмотра
Решения вопроса 2
Nipheris
@Nipheris Куратор тега C++
1. На кой вам наследование вообще? Вы утверждаете что треугольник это точка??
2. Ну вот оставьте три точки которые вы уже объявили в качестве полей, и сделайте методы для операций, определённых над треугольников в целом, например посчитать периметр или площадь. Сделайте конструктор, который эти три точки будет принимать и дополнительно проверять что никакие две из них не лежат на одной прямой - получите инвариант невырожденного треугольника.

По каким книгам вы всё это делаете? Учебный материал у вас явно не очень.
Ответ написан
@anikavoi
double getP(){
return p1 + p2 + p3;
}

Не "взлетит". Не описан operator+ в Point.

У вас есть метод для координат на плоскости (кстати туда б добавить надо, например тех же операторов). Для треугольника нужны кроме 3 поинтов, еще методы "что с ними делать", например GetSquare(), InSpace(Point), GetCenter()... etc...
Класс для "тупо хранения трех точек" без методов работы с ними - не нужен.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы