Форум программистов, компьютерный форум CyberForum.ru

Не получается переопределить операторы "+" и "=" - 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){} По моей задумке, это конструкоры для моего типа данных. Я вроде все делаю как написано тут:http://www.intuit.ru/studies/courses/1039/231/lecture/3207 А вот какие ошибки выдает: error C2059: синтаксическая...
C++ Работа с CURL Люди, подскажите, как можно прикрутить библиотеку curl к IDЕ Dеv Cплюс плюс . Очень нужно. И желательно все детально расписать :-), и где ее (библиотеку)скачать, нужно именно на Dеv Cплюс плюс , так как скачать другие у меня пока скорость интернета не позволяет Добавлено через 13 минут Что никак нельзя сделать? :-( Добавлено через 19 секунд Что никак нельзя сделать? :-( Добавлено... 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++(); T &operator--(); T &operator()(int);
C++ Неполадки с isalpha http://www.cyberforum.ru/cpp-beginners/thread943514.html
Ниже я привел код самой функции. Суть в том, что я хочу открыть файл и прочитать с него только цифры,английские буквы,разделители и знаки пунктуации.То есть если символ являеться таковым, он заноситься в вектор и будет в дальнейшем использован. Например в файле лежит дальнейшее - rjnjhst jcyjdfkb vtnfk? - все хорошо, но если там лежит строка вида «njkcnjt», то всё,прога вылетает с ошибками,...
C++ знаки после запятой , формат float я вот что делаю: float i = *(float*)0x0000000; приравниваю значение адреса в формате флоат , мне нужно сделать чтобы переменная i равнялась флоату с одним знаком после запятой , не вот так 1.1234567 чтобы равна была, а вот так 1.1 Не хотелось бы услышать ответ - "делением на 10 или на 1000" - уже пробовал , геморно очень , может есть специальные функции или операторы? подробнее

Показать сообщение отдельно
Демик
9 / 9 / 0
Регистрация: 19.04.2012
Сообщений: 114
25.08.2013, 23:09     Не получается переопределить операторы "+" и "="
Всем, ещё раз, привет!
Пытаюсь переопределить операторы "+" и "=" вот так:
Это файл 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 +" имеет слишком много параметров

и т.д.
Как быть и что делать? Я как бы понимаю, что переопределяю не так, но как исправить это дело, не знаю.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 04:33. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru