|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
03.01.2012, 18:20 | #11 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
http://cplusplus.com/doc/tutorial/classes2/
так же смотреть таблицу в конце раздела про перегрузку. членами класса не могут операторы которые не соответствуют тому что this левый. то есть если к примеру нам нужен Код:
но если мы хотим MyClass<<std::istream, то вполне можно сделать членом класса MyClass. Код:
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
03.01.2012, 18:29 | #12 |
Старожил
Регистрация: 16.12.2011
Сообщений: 2,329
|
То есть, вы хотите сказать, что это:
CVector operator + (CVector); //бинарный оператор ? Просто его lValue - это *this ? Ну если вы так считаете, то я вам скажу, что бинарный оператор бинарному оператору рознь. Test& operator+(Test& left, Test& right); //не имеет права быть мембером. А значит обязан быть только статиком. Test& operator+(const Test& crc); Ничего такого странного не замечаете? |
03.01.2012, 19:37 | #13 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
да lValue это this. насчет странного второе это внешний оператор. внешние не имеют права быть членами класса
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
03.01.2012, 19:40 | #14 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
в смысле внешний тот что принимает два аргумента
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
03.01.2012, 19:44 | #15 | |
C++, Java
Старожил
Регистрация: 10.04.2010
Сообщений: 2,665
|
Цитата:
|
|
03.01.2012, 20:05 | #16 | |
Старожил
Регистрация: 16.12.2011
Сообщений: 2,329
|
Цитата:
А любая глобальная функция - это статическая функция. Есть конечно разница между "просто глобальной функцией" и "статической глобальной функцией", но это уже немножко из другой оперы. А вот товарищ Riffi заявил, что "внешний оператор" , представленный в коде сабжа, который автор топика по глупости запихал в класс - это не статическая функция, в чем он очень сильно ошибается. мухи отдельно, котлеты отдельно. "дружественность" и "статичность" функции - это два перпендикулярных понятия. Френд - это друг класса. Особое указание компилятору, что функция, описанная данным прототипом имеет доступ ко всем данным-членам класса. Другом класса может быть статическая функция. Другом класса может быть "внешний бинарный оператор", который является статической функцией. А вот не_статическим "внешний глобальный оператор" быть не может. Последний раз редактировалось _Bers; 03.01.2012 в 20:24. |
|
03.01.2012, 20:11 | #17 |
Старожил
Регистрация: 16.12.2011
Сообщений: 2,329
|
делетеделетеделете
Последний раз редактировалось _Bers; 03.01.2012 в 20:23. |
03.01.2012, 20:37 | #18 | |
C++, Java
Старожил
Регистрация: 10.04.2010
Сообщений: 2,665
|
Цитата:
Но вы прям так написали, "обязана"... |
|
03.01.2012, 20:46 | #19 |
Старожил
Регистрация: 16.12.2011
Сообщений: 2,329
|
|
03.01.2012, 23:38 | #20 | |
Старожил
Регистрация: 19.08.2009
Сообщений: 2,119
|
_Bers
Цитата:
То есть, вы считаете, что бинарные операторы не обязаны быть статиками? И их можно сделать мемберами классов, да? я ответил на вполне конкретный вопрос, а вот о чем был выданный вами поток сознания мессадж я поначалу даже не понял, но, почитав чуть далее: ... Другом класса может быть "внешний бинарный оператор", который является статической функцией. ... ... А любая глобальная функция - это статическая функция. ... все стало очевидно - вы просто не понимаете что такое "статическая функция" и назначение ключевого слова static.
А вы почему со мной не соглашаетесь, у вас что, импотенция? (c) ACE Valery
|
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Новогодний хранитель экрана made in programmersforum.ru | _PROGRAMM_ | Gamedev - cоздание игр: Unity, OpenGL, DirectX | 11 | 05.01.2012 12:37 |
Игра "Новогодний хоровод" | Phoenix77 | Gamedev - cоздание игр: Unity, OpenGL, DirectX | 7 | 02.02.2009 18:18 |
С днём студента! | Greblin | Свободное общение | 5 | 26.01.2009 02:24 |
Мой новогодний компьютер | meg33 | Свободное общение | 2 | 27.12.2007 16:16 |