![]() |
Модераторы: bsa |
![]() ![]() ![]() |
|
pycha |
|
||||||
![]() главный анастазиолог ![]() Профиль Группа: Участник Сообщений: 239 Регистрация: 20.6.2008 Где: Украина Репутация: 1 Всего: 13 |
Драсте. У меня тут возникли непонятки с созданием дружественной функции. Вот есть клас:
Мне нужно перегруженые операторы реализовать в виде дружественных функций. Исходя с того что я знаю я написал вот так:
Вот сами функции:
Вот ошибки: g:\documents and settings\pycha.pycha-1366613\мои документы\visual studio 2008\projects\11.1\11.1\m.h(16) : error C2270: '+' : modifiers not allowed on nonmember functions g:\documents and settings\pycha.pycha-1366613\мои документы\visual studio 2008\projects\11.1\11.1\m.h(17) : error C2270: '-' : modifiers not allowed on nonmember functions g:\documents and settings\pycha.pycha-1366613\мои документы\visual studio 2008\projects\11.1\11.1\m.h(18) : error C2270: '*' : modifiers not allowed on nonmember functions g:\documents and settings\pycha.pycha-1366613\мои документы\visual studio 2008\projects\11.1\11.1\11.1.cpp(29) : error C2270: '+' : modifiers not allowed on nonmember functions g:\documents and settings\pycha.pycha-1366613\мои документы\visual studio 2008\projects\11.1\11.1\11.1.cpp(37) : error C2270: '-' : modifiers not allowed on nonmember functions g:\documents and settings\pycha.pycha-1366613\мои документы\visual studio 2008\projects\11.1\11.1\11.1.cpp(47) : error C2270: '*' : modifiers not allowed on nonmember functions g:\documents and settings\pycha.pycha-1366613\мои документы\visual studio 2008\projects\11.1\11.1\11.1.cpp(49) : warning C4244: 'initializing' : conversion from 'double' to 'long', possible loss of data menu.cpp g:\documents and settings\pycha.pycha-1366613\мои документы\visual studio 2008\projects\11.1\11.1\m.h(16) : error C2270: '+' : modifiers not allowed on nonmember functions g:\documents and settings\pycha.pycha-1366613\мои документы\visual studio 2008\projects\11.1\11.1\m.h(17) : error C2270: '-' : modifiers not allowed on nonmember functions g:\documents and settings\pycha.pycha-1366613\мои документы\visual studio 2008\projects\11.1\11.1\m.h(18) : error C2270: '*' : modifiers not allowed on nonmember functions Generating Code... Build log was saved at "file://g:\Documents and Settings\pycha.PYCHA-1366613\Мои документы\Visual Studio 2008\Projects\11.1\11.1\Debug\BuildLog.htm" 11.1 - 9 error(s), 1 warning(s) Что тут не так: ведь вроде обьявил правильно. ![]() --------------------
ищу хакера со знанием компьютера длятехкт |
||||||
|
|||||||
Void |
|
|||
![]() λcat.lolcat ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2206 Регистрация: 16.11.2004 Где: Zürich Репутация: 2 Всего: 173 |
Убрать const с объявлений операторов, это не методы класса и смысла он не имеет. -------------------- “Coming back to where you started is not the same as never leaving.” — Terry Pratchett |
|||
|
||||
pycha |
|
|||
![]() главный анастазиолог ![]() Профиль Группа: Участник Сообщений: 239 Регистрация: 20.6.2008 Где: Украина Репутация: 1 Всего: 13 |
да действительно заработало. Я думал что const будет давать гарантию что не будет изминений в передаваемых класах. Не думал что в таких случаях они будут лишние...
--------------------
ищу хакера со знанием компьютера длятехкт |
|||
|
||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
pycha, модификатор const в конце метода нужен чтобы показать, что метод не меняет класс, так как никак иначе это указать нельзя. Просто каждому нестатическому методу первым параметром неявно передается указатель на объект класса. Вот const и относится к нему.
Когда ты пишешь не методы, то ты можешь легко сам вручную указать что у тебя указывает на константу, а что нет. |
|||
|
||||
pycha |
|
|||
![]() главный анастазиолог ![]() Профиль Группа: Участник Сообщений: 239 Регистрация: 20.6.2008 Где: Украина Репутация: 1 Всего: 13 |
теперь понятно
--------------------
ищу хакера со знанием компьютера длятехкт |
|||
|
||||
![]() ![]() ![]() |
Правила форума "C/C++: Для новичков" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |