Как оператором = вернуть значение

107
09 февраля 2021, 00:40

Есть задание разработать класс Triangle и в нем перегрузить оператор =, который возвращал бы площадь этого треугольника. Вопрос в том, как это сделать? То есть как оператором = вернуть тип double, если это метод класса треугольник.

Answer 1

Необходимо перегрузить оператор приведения к типу double, к примеру вот так:

#include <iostream>
class Triangle
{
public:
    Triangle () {}
    operator double() const
    {
        return 1.0;
    }
};
int main(int argc, char *argv[])
{
    Triangle tr;
    double res = tr;
    std::cout << "Square:" << res << std::endl;
    return 0;
}

Но я бы не стал так делать, это очень не очевидное действие, на мой взгляд, лучше определить просто функцию square и пользоваться её.

#include <iostream>
class Triangle
{
public:
    Triangle () {}
    double square() const
    {
        return 1.0;
    }
};
int main(int argc, char *argv[])
{
    Triangle tr;
    std::cout << "Square:" << tr.square() << std::endl;
    return 0;
}
READ ALSO
Как передать функцию в метод?

Как передать функцию в метод?

У меня есть такая функция

121
Вывод координат возле курсора

Вывод координат возле курсора

Пытаюсь выводить координаты XY возле курсора мышиС самим просчетом координат все норм, но вот с расположение текста проблема

94
Как упаковать проект в один exe-файл?

Как упаковать проект в один exe-файл?

У меня есть проект в Visual Studio, в котором я подключаю библиотеки OpenGLСтолкнулся с необходимостью запаковать его вместе со всеми текстурами и библиотеками...

109
Неправильно подключается jQuery через Webpack

Неправильно подключается jQuery через Webpack

В одном из своих модулей импортировал jQuery:

144