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

Перегрузка оператора += - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ условие http://www.cyberforum.ru/cpp-beginners/thread357010.html
Ответ скорее всего прост,но не могу придумать никак #include <stdio.h> #include <conio.h> #include <locale.h> int fact(int n)//в цикле со счётчиком умножают переменную на счетчик, который...
C++ Расчитать значение функии f(x) по соответсвующей формуле. Добрый день, вот моё задание: Составьте алгоритм программы, которая принимает от пользователя значение x и в зависимости от его значения, расчитывет значение функии f(x) по соответсвующей формуле.... http://www.cyberforum.ru/cpp-beginners/thread357006.html
Создание динамического массива C++
const int Num=5; const int SIZE=4096 * Num; SHORT Buf; как такое заменить, если Num- инициализируется при загрузке программы, читается из файла. int Num; int SIZE=4096 * Num; SHORT* Buf...
C++ Компиляторы
Скажите пожалуйста какие сейчас есть компиляторы для С++ и какой из них на сегодняшний день самый распространённый и широкоиспользуемый?
C++ сумма соседних членов последовательности http://www.cyberforum.ru/cpp-beginners/thread356953.html
Даны числа а1, а2, a(n) Известно, что а1>0 и что среди а2, а3, a(n) есть хотя бы одно отрицательное число. Пусть а1, a2, an - члены данной последовательности, предшествующие первому отрицательному...
C++ Вычитаем процент от числа. Вот фрагмент программки... weight = growth - 110; ideal_weight = weight - (weight * (10/100)); cout << Rus("Ваш идеальный вес ") << ideal_weight; cout << Rus(" кг.") << endl; ... подробнее

Показать сообщение отдельно
Gepar
1177 / 533 / 20
Регистрация: 01.07.2009
Сообщений: 3,517
27.09.2011, 19:25  [ТС]
Ну вот, опять та же ошибка, не блин. Вот не понимаю чего так.
Вот кусочек Mat4:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
    Vec4 operator[](int i)
    {
        return ((i>=0) && (i<=3) ? elem[i] : throw Vec4::Out_of_bounds());
    }
 
    Vec4 operator[](int i) const
    {
        return ((i>=0) && (i<=3) ? elem[i] : throw Vec4::Out_of_bounds());
    }
 
    Mat4 &operator+=(Mat4 &right)
    {
        for (size_t i=0;i<elem.size();i++)
         elem[i]+=right[i];  
 
        return *this;
    }
Как мы видим операция [] возвращает i-тый Vec4 объект, те это
C++
1
elem[i]+=right[i];
превращается в что-то типа
Vec4 a+=Vec4 b;
так почему же оно тогда не работает я не могу понять, когда из main всё удачно вызывается + я дописал функцию в Mat4 вида
C++
1
2
3
4
5
6
7
    Vec4 fun()
    {
        Vec4 a;
        Vec4 b;
        a+=b;
        return a;
    }
и она тоже работает -> проблема где-то в моём классе Mat4, вероятно с перегрузкой [], хм, может попробовать избавиться от throw в этих [], возможно это смущает компилятор и из-за этого получается какая-то ересь.
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru