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

Ошибка при обращении к методу константного объекта - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Реализовать метод summa () для вычисление денежной суммы http://www.cyberforum.ru/cpp-beginners/thread1135738.html
Поле first — целое положительное число, номинал купюры; номинал может принимать значения 1, 2, 5, 10, 50, 100, 500. Поле second — целое положительное число, количество купюр данного достоинства. Реализовать метод summa () — вычисление денежной суммы.
C++ Заполнить двумерный массив размером n*n единицами и нулями как на шахматной доске Заполнить двумерный массив размером n*n единицами и нулями таким образом, чтобы единицы размещались так, как размещаются на шахматной доске черные поля, а нули-как белые поля. Левое нижнее поле на шахматной доске всегда черное. http://www.cyberforum.ru/cpp-beginners/thread1135732.html
C++ Дан массив целых чисел. Верно ли, что сумма квадратов элементов массива есть пятизначное число
дан массив целых чисел. Верно ли, что сумма квадратов элементов массива есть пятизначное число.
C++ Составить программу поиска четырёхзначных чисел, которые при делении на 133 дают в остатке 125, а при делении на 134 да
Составить программу поиска четырёхзначных чисел, которые при делении на 133 дают в остатке 125, а при делении на 134 дают в остатке 111.
C++ Определить пересекаются ли две прямые, заданные своими уравнениями на плоскости http://www.cyberforum.ru/cpp-beginners/thread1135722.html
Определить пересекаются ли две прямые, заданными своими уравнениями на плоскости. Если они пересекаются установить координаты точки пересечения.
C++ Линейная задача о круге в треугольнике Требования к программе: - Числовые значения переменных ввести с клавиатуры, вывод напоминания при этом обязательно; - Вывести на экран значения входных данных и окончательные результаты выполнения программы. Условие Вычислить периметр и площади вписанного и описанного кругов правильного треугольника, если известна его сторона. подробнее

Показать сообщение отдельно
MrAndrey_ka
 Аватар для MrAndrey_ka
77 / 77 / 2
Регистрация: 13.05.2009
Сообщений: 536
Записей в блоге: 1
01.04.2014, 13:10     Ошибка при обращении к методу константного объекта
Есть некий класс, в нем есть метод const size_t Length();
пишу оператор сложения
C++
1
2
3
 Class& operator + (const Class& Val) {
    if (Val.Length() == 0) return *this;
.....}
получаю ошибку: error C2662: const size_t Class::Length(void): невозможно преобразовать указатель "this" из "const Class" в "Class &"

что я делаю не так? напрашивается конечно вариант: Class& operator + (Class& Val). но к нему прибегать не хотелось бы!

Добавлено через 11 минут
хотел упростить код, но вышло что в упрощенной версии все работает, так что вот версия которая не работает
C++
1
2
3
4
5
 
template <class Type>
Class <Type>& operator + (const Class<Type>& Val) {
    if (Val.Length() == 0) return *this;
.....}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 23:37. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru