С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

Не получается переопределить операторы "+" и "=" - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Не получается создать свой тип данных http://www.cyberforum.ru/cpp-beginners/thread943571.html
Всем привет! Подскажите почему компилятор ругается на эти три строчки? MyVector2D():x(0),y(0){} MyVector2D(float x, float y):x(x),y(y){} MyVector2D(const MyVector2D &r):x(r.x),y(r.y){} По моей...
C++ Работа с CURL Люди, подскажите, как можно прикрутить библиотеку curl к IDЕ Dеv Cплюс плюс . Очень нужно. И желательно все детально расписать :-), и где ее (библиотеку)скачать, нужно именно на Dеv Cплюс плюс ,... http://www.cyberforum.ru/cpp-beginners/thread943564.html
std::string::find и кириллица C++
есть простенький код #include <iostream> // std::cout #include <string> // std::string int main () { std::string str = "привет"; std::cout << str.find("ве"); return 0;
C++ Эксперты обобщенного программирования
Прошу подсказать в чем тут ошибка ? Вот часть когда куда указывают ошибки: template < class ArrayList<T>> class Iterator { public: Itrator(ArrayList<T>&); bool hasNext(); T &operator++();...
C++ Неполадки с isalpha http://www.cyberforum.ru/cpp-beginners/thread943514.html
Ниже я привел код самой функции. Суть в том, что я хочу открыть файл и прочитать с него только цифры,английские буквы,разделители и знаки пунктуации.То есть если символ являеться таковым, он...
C++ знаки после запятой , формат float я вот что делаю: float i = *(float*)0x0000000; приравниваю значение адреса в формате флоат , мне нужно сделать чтобы переменная i равнялась флоату с одним знаком после запятой , не вот так... подробнее

Показать сообщение отдельно
Демик
9 / 9 / 0
Регистрация: 19.04.2012
Сообщений: 114

Не получается переопределить операторы "+" и "=" - C++

25.08.2013, 23:09. Просмотров 1040. Ответов 6
Метки (Все метки)

Всем, ещё раз, привет!
Пытаюсь переопределить операторы "+" и "=" вот так:
Это файл MyVector2D.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
MyVector2D& operator/=(MyVector2D &a, const MyVector2D &b)
{
    a.x = b.x;
    a.y = b.y;
    return a;
}
 
MyVector2D operator+(const MyVector2D &a, const MyVector2D &b)
{
    MyVector2D c;
    c.x = a.x + b.x;
    c.y = a.y + b.y;
    return c;
}
А это файл MyVector2D.h

C++
1
2
3
4
5
6
7
8
9
struct MyVector2D 
{
    float x, y;
    MyVector2D():x(0),y(0){}
    MyVector2D(float x, float y):x(x),y(y){}
    MyVector2D(const MyVector2D &r):x(r.x),y(r.y){}
    MyVector2D& operator/=(MyVector2D &a, const MyVector2D &b);
    MyVector2D operator+(const MyVector2D &a, const float &b);
};
И пытаюсь использовать их так:

C++
1
2
MyVector2D a(50,100), b(50,100), c(0,0);
c=a+b;
Но выскакивают такие ошибки:
my_Object.cpp
error C2804: бинарный "operator /=" имеет слишком много параметров
error C2804: бинарный "operator +" имеет слишком много параметров
main.cpp
error C2804: бинарный "operator /=" имеет слишком много параметров
error C2804: бинарный "operator +" имеет слишком много параметров
error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
error C2371: c: переопределение; различные базовые типы
main.cpp(7): см. объявление "c"
error C2676: бинарный "+": "MyVector2D" не определяет этот оператор или преобразование к типу приемлемо к встроенному оператору
cTGA.cpp
error C2804: бинарный "operator /=" имеет слишком много параметров
error C2804: бинарный "operator +" имеет слишком много параметров

и т.д.
Как быть и что делать? Я как бы понимаю, что переопределяю не так, но как исправить это дело, не знаю.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.