Модераторы: bsa

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> помогите с переопределением операций << и >> 
V
    Опции темы
J0ker
Дата 4.10.2008, 23:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 986
Регистрация: 17.9.2008

Репутация: 9
Всего: 14



Цитата(IKM2007 @  4.10.2008,  21:04 Найти цитируемый пост)
J0ker, а где здесь слово clock?

это предположение
в вашем случае это имя T - оно где-то уже используется
в его случае - имя clock
Цитата(IKM2007 @  4.10.2008,  21:04 Найти цитируемый пост)
не имеет значения, если функция дружественная.


Цитата(IKM2007 @  4.10.2008,  21:04 Найти цитируемый пост)
C:\Program Files\Microsoft Visual Studio\MyProjects\1\main.cpp(12) : see declaration of 'x'
C:\Program Files\Microsoft Visual Studio\MyProjects\1\main.cpp(26) : error C2248: 'y' : cannot access private member declared in class 'T'
 - говорит что недружественная - я это комментировал



--------------------
user posted image
PM MAIL   Вверх
yngwie19
Дата 5.10.2008, 21:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 829
Регистрация: 15.6.2008
Где: Новгород

Репутация: нет
Всего: нет



Скажите зачем возвращать ссылку на объект in а не сам объект in ? есть ли разница ?
Код

istream & operator >> (istream & in,T &r)
    {
    cout<<"Enter x & y:\nx=";
    in>>r.x;
    cout<<"y=";
    in>>r.y;
    return in;
    }


PM MAIL   Вверх
J0ker
Дата 5.10.2008, 22:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 986
Регистрация: 17.9.2008

Репутация: 9
Всего: 14



Цитата(yngwie19 @ 5.10.2008,  21:52)
Скажите зачем возвращать ссылку на объект in а не сам объект in ? есть ли разница ?
Код

istream & operator >> (istream & in,T &r)
    {
    cout<<"Enter x & y:\nx=";
    in>>r.x;
    cout<<"y=";
    in>>r.y;
    return in;
    }


если возвращать не ссылку, то будет попытка вызова копиконстрактора чтобы создать копию, а копиконстрактор у него приватный (что и понятно, т.к. к этому объекту привязан некопируемый ресурс)


--------------------
user posted image
PM MAIL   Вверх
yngwie19
Дата 5.10.2008, 23:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 829
Регистрация: 15.6.2008
Где: Новгород

Репутация: нет
Всего: нет



хорошо, а когда мы делаем так:
Код

 #include <iostream>


using namespace std;

class A
{
    friend int Print(A);
    public:
        A() {x = 1;}
    private:
        int x;
};

int main(){

A one;
cout<<Print(one);

return 0;
}

int Print(A obj)
{
    return obj.x;
}

мы возвращаем obj не по ссылке, в чем тогда суть если мы его возвратим по ссылке?
PM MAIL   Вверх
J0ker
Дата 6.10.2008, 01:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 986
Регистрация: 17.9.2008

Репутация: 9
Всего: 14



когда мы делаем так - Print возвращает int, и у объекта cout вызывается перегруженный operator<< с параметром int, который возвращает опять-таки ссылку на самого себя

Это сообщение отредактировал(а) J0ker - 6.10.2008, 01:30


--------------------
user posted image
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0725 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.