|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
27.05.2013, 21:09 | #1 |
Форумчанин
Регистрация: 17.03.2012
Сообщений: 105
|
Перегрузка функции
Добрый день. Пытаюсь перегрузить функцию в классе, выдает вот такую ошибку: cannot overload functions distinguished by return type alone. Пытался убрать спецификатор friend, но ошибка, видимо, не из-за него. Подскажите, пожалуйста, что не так.
Код:
|
27.05.2013, 21:10 | #2 |
Форумчанин
Регистрация: 17.03.2012
Сообщений: 105
|
Решил проблему, поменяв местами аргументы функции.
---------------- Не совсем решил.. Когда пытаюсь присвоить значения класса Beta значениям класса Alpha пишет ошибку, что B1 и B2 inaccessible. Код:
Последний раз редактировалось Dima-War; 27.05.2013 в 21:13. |
27.05.2013, 21:35 | #3 |
Старожил
Регистрация: 21.03.2009
Сообщений: 2,193
|
Тип возвращаемого значения не является частью сигнатуры функции, поэтому компилятор не может различить две функции с одним и тем же именем и одним и тем же списком аргументов, и отличающиеся только возвращаемым значением. То есть вы делаете что-то совершенно не предусмотренное стандартом языка.
Впрочем, я толком даже не понял, чего вы хотите добиться? Опишите, для чего нужны эти функции, для чего вам их перегружать и какие-нибудь примеры использования.
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта Тема на форуме, посвященная ему же |
27.05.2013, 22:03 | #4 |
Форумчанин
Регистрация: 17.03.2012
Сообщений: 105
|
В общем то я хочу написать 2 функции. Первая из них объекту класса Alpha присваивает значение объекта класса Beta и возвращает Alpha. Вторая функция объекту класса Beta присваивает значение объекта класса Alpha и возвращает Beta. Вопрос в том, почему даже с дружественной функцией нету доступа к полям разных классов.
--------- Все. Нашел все свои ошибки. Последний раз редактировалось Dima-War; 27.05.2013 в 22:26. |
27.05.2013, 22:23 | #5 |
Старожил
Регистрация: 25.10.2011
Сообщений: 3,178
|
Код:
|
27.05.2013, 22:27 | #6 |
Форумчанин
Регистрация: 17.03.2012
Сообщений: 105
|
Да, оно, спасибо
|
27.05.2013, 22:44 | #7 |
Форумчанин
Регистрация: 17.03.2012
Сообщений: 105
|
Хотя все же не все... Когда я вставляю такую вот строку, мне выдает следующую ошибку: 'operator =' must be a member function. Членом какой функции он должен быть? (Почему то если вместо = поставить +, то этой ошибки нету).
Код:
|
27.05.2013, 22:53 | #8 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,291
|
Потому что оператор присваивания строго функция класса и не может быть френдовым.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
|
27.05.2013, 22:56 | #9 |
Форумчанин
Регистрация: 17.03.2012
Сообщений: 105
|
Все, вроде вопросов больше нет. Еще раз спасибо
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Перегрузка функции | ViktorKozlov | Общие вопросы C/C++ | 5 | 23.03.2013 09:40 |
Перегрузка функции С++ | Косиус | Помощь студентам | 3 | 21.03.2013 23:07 |
перегрузка функции.. | YaDenis | Помощь студентам | 0 | 10.01.2013 23:56 |
Перегрузка функции.С++ | jagger | Помощь студентам | 8 | 11.11.2010 22:27 |
Перегрузка функции в С++ | Vultar | Помощь студентам | 7 | 19.11.2009 13:12 |