реклама на сайте
подробности

 
 
> Перегрузка операторов в IAR, не получается перегрузить оператор ->
prottoss
сообщение Sep 20 2005, 16:26
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 2 720
Регистрация: 24-03-05
Пользователь №: 3 659



Кто нибудь знает как перегрузить оператор -> в IAR?

struct U_Type
{ char a, b;

U_Type *operator->() const { return this;}
}

На такую запись он ругается что надо ставить точку с запятой между оператор и ->. На другие варианты тоже. Запись по идее не перегружает оператор, а дублирует то что есть без перегрузки. Но в скобках можно написать что угодно... Кто нибудь использовал перегрузку?


--------------------
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
dxp
сообщение Sep 21 2005, 06:28
Сообщение #2


Adept
******

Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343



Цитата(prottoss @ Sep 20 2005, 22:26)
Кто нибудь знает как перегрузить оператор -> в IAR?

struct U_Type
{        char a, b

          U_type *operator->() const { return this;}
}

На такую запись он ругается что надо ставить точку с запятой между оператор и ->. На другие варианты тоже. Запись по идее не перегружает оператор, а дублирует то что есть без перегрузки. Но в скобках можно написать что угодно... Кто нибудь использовал перегрузку?
*

Во-первых, после b надо ставить ;.

Во-вторых, оператор возвращает неизвестный тип: U_Type и U_type - это два разных типа.

В-третьих, в конце определения типа надо тоже ставить ;.

В-четвертых, функция объявлена как константная, и возвращаемое значение - не констатнта. Надо либо убрать const из определения функции, либо тип возврата квалифицировать словом const. В итоге код, приведенный ниже:

Код
struct U_Type
{
   char a, b;

   const U_Type *operator->() const { return this;}
};


Вполне успешно компилируется.

Выводы: внимательнее надо быть, раз, и язык немножко подучить, два.


--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 30th July 2025 - 18:10
Рейтинг@Mail.ru


Страница сгенерированна за 0.01467 секунд с 7
ELECTRONIX ©2004-2016