Хорошо, что название в значительной степени говорит об этом. Я опубликовал часть своего кода, я понятия не имею, как добавить 1 к сторонам треугольника (a, b и c) ... Любая помощь будет принята с благодарностью!Перегрузить оператор ++, чтобы добавить 1 к значениям, хранящимся в массиве?
class Triangle
{
public:
Triangle();
Triangle(double a, double b, double c);
~Triangle();
double get_side_a() const;
double get_side_b() const;
double get_side_c() const;
Triangle& operator++();
void operator++(int dummy);
private:
double* sides;
};
Triangle::Triangle()
{
sides = new double[3];
sides[0] = 0;
sides[1] = 0;
sides[2] = 0;
} // Constructor
Triangle::Triangle(double a, double b, double c)
{
sides = new double[3];
sides[0] = a;
sides[1] = b;
sides[2] = c;
} // Constructor with parameters
Triangle::~Triangle()
{
if(sides)
{
delete[] sides;
sides = 0;
}
} // Destructor
double Triangle::get_side_a() const
{
return sides[0];
} // get_side_a
double Triangle::get_side_b() const
{
return sides[1];
} // get_side_b
double Triangle::get_side_c() const
{
return sides[2];
} // get_side_c
Triangle& Triangle::operator++()
{
*this = *this + 1;
return *this;
} // Oprator ++ (prefix)
void Triangle::operator++(int dummy)
{
++(*this);
} // Operator ++ (postfix)
int main()
{
Triangle tri1, tri2;
cout << "Enter side legths for triangle 1:" << endl;
cin >> tri1;
cout << endl << "Enter side legths for triangle 2:" << endl;
cin >> tri2;
cout << endl;
cout << tri1 << endl;
cout << tri2 << endl;
return 0;
}
я получаю ошибку: не подходит для 'оператора +' в '* (Triangle *) это + 1' в данном написании Triangle & треугольника :: оператор ++() ...
Редактировать : Известно, что C++ жарит мозги, но это что-то еще нужно выяснить из первых рук. 10x каждый.
Вам необходимо реализовать оператор + –
http://courses.cms.caltech.edu/cs11/material/cpp/donnie/cpp-ops.html –
Урок, который можно извлечь из этого опыта, состоит в том, что сообщения об ошибках обычно справедливы информативны, но иногда вам придется на некоторое время и подумать о них. – dmckee