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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
MrAndrey_ka
77 / 77 / 2
Регистрация: 13.05.2009
Сообщений: 536
Записей в блоге: 1
#1

Классы: ка победить ошибку из "const Type" в "Type &" - C++

19.04.2013, 20:32. Просмотров 394. Ответов 2
Метки нет (Все метки)

Создаю свой класс

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
class MyClass
{private:
int *dat;
WCHAR *buf;
inline size_t GetLength(){return dat? dat: 0;};
public:
const  MyClass& operator +=(const  MyClass& val);
.....}
 
const MyClass& MyClass::operator +=(const MyClass& val){
if(!val.dt) return *this;
size_t sz = val.GetLength();
.....
return *this; 
}
Выдает ошибку: error C2662: MyClass::GetLength: невозможно преобразовать указатель "this" из "const MyClass" в "MyClassr &" как это побороть
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.04.2013, 20:32     Классы: ка победить ошибку из "const Type" в "Type &"
Посмотрите здесь:

C++ Ошибка argument of type "CGroup *" is incompatible with parameter of type "CGroup *"
C++ Ошибка "expected constructor, destructor, or type conversion"
C++ Преобразовать параметр из "WCHAR [260]" в "const char *"
Error: ISO C++ forbids declaration of "Link" with no type C++
no operator found which takes a right/left-hand operand of type "AR" C++
C++ Работа с функциями и ошибка "Subscript requires array or pointer type"
Ошибка "integer constant is too large for 'long' type" C++
C++ Ошибка при компиляции "Size of the type 'char[]' is unknown or zero"
Ошибка: argument of type "char *" is incompatible with parameter of type "LPCWSTR" C++
C++ Ошибка "missing type specifier - int assumed" В шаблоне класса
Ошибка "binary '==': no operator found which takes a left-hand operand of type" C++
C++ Ошибка "error C4430: missing type specifier" при работе с fstream

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
tzeentch
25 / 25 / 2
Регистрация: 13.04.2013
Сообщений: 79
19.04.2013, 20:46     Классы: ка победить ошибку из "const Type" в "Type &" #2
GetLength стоит обьявить как const:

C++
1
inline size_t GetLength() const {return dat? dat: 0;}
Tulosba
:)
Эксперт С++
4387 / 3230 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
20.04.2013, 00:48     Классы: ка победить ошибку из "const Type" в "Type &" #3
Сдается мне, должно быть так:
C++
1
2
3
inline size_t GetLength() const {return dat? *dat: 0;};
MyClass& operator +=(const  MyClass& val);
MyClass& MyClass::operator +=(const MyClass& val){
Yandex
Объявления
20.04.2013, 00:48     Классы: ка победить ошибку из "const Type" в "Type &"
Ответ Создать тему
Опции темы

Текущее время: 23:21. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru