Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.144.103.10] |
|
Сообщ.
#1
,
|
|||
|
Добрый день! Как мне перегрузть оператор << в классе, что бы можно было делать так:
Спасибо. |
Сообщ.
#2
,
|
|
|
CFoo& CFoo::operator<<(char * a){...; return *this;};
и CFoo& CFoo::operator<<(int a){...; return *this;}; |
Сообщ.
#3
,
|
|||
|
Должно быть так:
----------------------------------- P.S. Какое единодушие. |
Сообщ.
#4
,
|
|||
|
А почему именно используется знак & после CFoo?
Добавлено в Да, и еще почему при объявлении функции некоторые делают так: void SomeFunc1(int& x); И чем это отличается от: void SomeFunc2(int x); |
Сообщ.
#5
,
|
|
|
Срочно искать хорошую книгу по C++ Иначе АХТУНГ!!!...
выражение <тип> & означает ссылка на (т.е., фактически, адрес) переменную типа <тип>. Нужны ссылки, чтобы можно было оперировать физически одним объектом, не создавая его копии. В Си для етого использовались указатили, но указатели -- довольно опасная штука... |
Сообщ.
#6
,
|
|
|
При <тип> & создаётся псевдоним объекта.
И обращение по укозателю немного медлнее, чем обращение по ссылке (скорее всего за счет доплнительной операции разыменования указателя). ЗЫ Купи себе Страуструп "Язык С++"3-е издание |
Сообщ.
#7
,
|
|
|
Как ето медленнее?
Указатель и ссылка -- ето одно и то же, за исключением того, что практически невозможно, находясь в здравом уме и трезвой памяти, поместить в ссылку некорректное значение, или оставить ее неинициализированной. |
Сообщ.
#8
,
|
|||
|
А почему тогда *this? |
Сообщ.
#9
,
|
|
|
Для политкорректности
Ссылка синтаксически определяется как уже разыменованный указатель, т.е., инициализировать ее нужно именем объекта, а не именем указателя на него. А семантически -- как адрес объекта, т.е., содержит в себе именно адрес. |
Сообщ.
#10
,
|
|||
|
Чтобы вернуть ссылку на самого себя.
|
Сообщ.
#11
,
|
|
|
Ссылка и указатель немного разные вещи. Ссылка- это синоним переменной. А указатель токо указывает на неё (никогда не слышал про операцию разыменования ссылки)
|