Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Программирование, перегрузка оператора в с++

Дмитрий Найтов Знаток (270), открыт 1 неделю назад
помогите дураку! описываю оператор == в классе, сделал все по гайду, но код не компилируется.
#include<iostream>
using namespace std;
class point
{
int x;
int y;
public:
point()
{
x = 0;
y = 0;
}
point(int a, int b)
{
x = a;
y = b;
}
bool operator == (const point &other)
{
return (this->x == other.x) && (this->y == other.y);
}
bool operator != (const point &other)
{
return !((this->x == other.x) && (this->y == other.y));
}
};
int main()
{
point a(5, 6);
point b(1, 2);
cout << a!=b << endl;
}

НО!
если я вместо a!=b пишу a.operator!=(b) все работает.
надеюсь на вас
2 ответа
Sergio 2.1 Оракул (67261) 1 неделю назад
 #include <iostream>  
using namespace std;

class point {
int x;
int y;
public:
point() {
x = 0;
y = 0;
}
point(int a, int b) {
x = a;
y = b;
}
bool operator == (const point &other) {
return (this->x == other.x) && (this->y == other.y);
}
bool operator != (const point &other) {
return !((this->x == other.x) && (this->y == other.y));
}
};

int main() {
point a(5, 6);
point b(1, 2);
cout << (a != b) << endl; // Добавлены скобки!
}
Дмитрий НайтовЗнаток (270) 1 неделю назад
сработало! спасибо, друг)
Николай Веселуха Высший разум (368762) 6 дней назад
 #include <iostream>

using namespace std;

class Point {
public:
using value_t = int;
Point() : x(0), y(0) {}
Point(const value_t x, const value_t y) : x(x), y(y) {}
private:
value_t x;
value_t y;
friend bool operator==(const Point& a, const Point& b) {
return a.x == b.x && a.y == b.y;
}
friend bool operator!=(const Point& a, const Point& b) {
return !(a == b);
}
};

int main() {
Point a(5, 6);
Point b(1, 2);
puts(a != b ? "No equal" : "Equal");
}
Похожие вопросы