Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 15, средняя оценка - 4.60
Lord_Anubys
Сообщений: n/a
#1

Перегрузка оператора сдвига - C++

25.12.2011, 14:13. Просмотров 2055. Ответов 1
Метки нет (Все метки)

Мне нужно перегрузить операторы>>, <<как члены класса, написал так:
C++
1
2
3
4
5
6
istream& Flower::operator>>(Flower& obj)
{
   this >> obj.title;
 
   return *this;
}
Я не знаю как в поток то загрузить, вот например в френд функции мы пишем следующее:
ist>> obj.title;
ist>> obj.color;
ist>> obj.month;
ist>> obj.title;
Ну а оператору как члену класса неявно передается левая часть, вот и стал эксперементировать. Исправьте плиз ошибку
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.12.2011, 14:13
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Перегрузка оператора сдвига (C++):

Перегрузка оператора - C++
Здравствуйте.Появился вопрос: есть две переменные float **m,**m1 как перегрузить оператор = в данном случае?(имею ввиду только первую...

Перегрузка оператора - C++
При вызове оператора, и если F1.x &lt;= 0, то пишет текст 'N' должно быть &gt; 0, после чего выводит расчеты по формуле. Но мне этого не...

Перегрузка оператора += - C++
Создал класс дробь. Пытаюсь перегрузить оператор += (или -=, *=, /=) А компилятор выдаёт ошибку 'drob operator+=(drob&amp;)' must take...

Перегрузка оператора - C++
Имеется код: #include &lt;iostream&gt; class X { public: int a; int b; int operator+(int a) {

Перегрузка оператора + - C++
String String::operator + (String &amp; sg2) { String tmp; tmp.str = new char ; strcpy (tmp.str, str); strcat (tmp.str, sg2.str);...

Перегрузка оператора [] - C++
У меня есть класс Przedzial (Интервал) с приватными переменными double low и double up И нужно перегрузить оператор для случая ob ,...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
insolent
826 / 347 / 15
Регистрация: 30.01.2009
Сообщений: 1,204
25.12.2011, 19:38 #2
Вот пример перегрузки как член класса
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#include <iostream>
 
class A
{
public:
    A(int n=0) : iVal(n) {}
    void Print()
    {
        std::cout << iVal << std::endl;
    }
 
    A operator >> (int num)
    {
        return A(iVal >> num);
    }
 
    A operator << (int num)
    {
        return A(iVal << num);
    }
 
private:
    int iVal;
};
 
int main()
{
    A obj(8), b;
    b = obj >> 2;
    b.Print();
    b = obj << 1;
    b.Print();
 
    return 0;
}
Если работаешь с потоком, то функции operator<<() и operator>>() должны быть дружественными по отношению к классу, т.к. объекты istream и ostream находятся слева от знака операции
2
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.12.2011, 19:38
Привет! Вот еще темы с ответами:

Перегрузка оператора << - C++
Господа, у меня когнитивный диссонанс. При компиляции программы вылезает ошибка: &quot;Ошибка 1 error C2679: бинарный &quot;&lt;&lt;&quot;: не найден...

перегрузка оператора - C++
Как перегрузить оператор , чтобы его можно было использовать для операций присваивания новых значений определённого члена массива? покажите...

Перегрузка оператора != - C++
Помогите разобраться с перегрузкой оператора != есть класс, в котором, в разделе private объявлен указатель на массив std::string *str; ...

Перегрузка оператора ~ - C++
Добрый вечер. Помогите пожалуйста. Задание:Вектор имеет 3 числа(водить их надо самому), нужно перезагрузить оператор ТИЛЬДА, цекличным...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru