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

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

Войти
Регистрация
Восстановить пароль
 
eksted
0 / 0 / 0
Регистрация: 05.04.2012
Сообщений: 10
#1

Перегрузка операции & - C++

01.06.2012, 13:14. Просмотров 262. Ответов 2
Метки нет (Все метки)

Необходимо создать перегрузку операции "и" для ввода вывода составляющих объекта. Объект состоит из двух переменных типа int.
Заранее спасибо!!!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.06.2012, 13:14     Перегрузка операции &
Посмотрите здесь:

Перегрузка операции - C++
Всем привет! Помогите сделать пожалуйста задание, а то совсем я не понимаю его :-| Перегрузите операции суммы, скалярного...

Перегрузка операции - C++
Запрограммировать и протестировать заданную перегруженную операцию, содержащуюся в классе, производном от заданного класса VECTOR. V...

Перегрузка операции = - C++
Здравствуйте, в программе вылезает такая ошибка MainUnit.cpp(86): E2034 Cannot convert 'string' to 'UnicodeString' в связи с этим...

Перегрузка операции - C++
Здравствуйте! Нужно перегрузить операцию << для вставки полей объекта класса в файл. Есть класс Hostel c полями FIO, GroupNumber и...

Перегрузка операции % - C++
Как перегрузить операцию % в с++?

Перегрузка операции - C++
Добрый день, Друзья! Столкнулся с такой проблемой, необходимо сравнить 2 пары чисел, вводимых с клавиатуры: Я перегрузил операцию ввода...

Перегрузка операции [] - C++
Добрый день. Столкнулся с недопониманием, странной ошибкой. #include <iostream> #include "windows.h" class Array { int...

Перегрузка операции ~ - C++
Задача: Перегрузить операцию ~ (унарная операция) так, чтобы она изменяла знак закрытых элементов – данных на противоположный для класса,...

Перегрузка операции = - C++
Подскажите пожалуйста как для шаблонной функции перегрузить = есть не сложно то на примере!!

Перегрузка операции >> - C++
Вообщем хочу перегрузить операцию >> и инициализировать с ее помощью класс. Но что-то перемудрил и компилятор ругается на эту функцию: ...

Перегрузка операции >> - C++
Здравствуйте. Возник такой вопрос: возможни ли перегрузить оператор >> так, чтобы пользователь мог вводить с клавиатуры время в формату...

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


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
igorrr37
1644 / 1272 / 133
Регистрация: 21.12.2010
Сообщений: 1,932
Записей в блоге: 7
02.06.2012, 19:04     Перегрузка операции & #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
#include <iostream>
#include <typeinfo>
 
class Obj
{
public:
    Obj(int _a, int _b): a(_a), b(_b){}
    friend std::ios& operator&(std::ios& s, Obj& o)
    {
        try
        {
            std::ostream& os(dynamic_cast<std::ostream&>(s));
            os << o.a << ' ' << o.b << std::endl;
        }
        catch(const std::bad_cast&)
        {
            std::istream& is(dynamic_cast<std::istream&>(s));
            is >> o.a >> o.b;
        }
        return s;
    }
private:
    int a, b;
};
 
int main()
{
    Obj o1(3, -7), o2(-9, 7);
    std::cout & o1 & o2;
    std::cin & o1 & o2;
    std::cout & o1 & o2;
    return 0;
}
Kastaneda
Форумчанин
Эксперт С++
4514 / 2856 / 228
Регистрация: 12.12.2009
Сообщений: 7,249
Записей в блоге: 1
Завершенные тесты: 1
02.06.2012, 20:30     Перегрузка операции & #3
OMG, маразм крепчал!

Необычное решение, можно еще так извратиться:
C++
1
2
3
4
5
6
7
8
9
10
11
12
    friend std::ios& operator&(std::ios& s, Obj& o)
    {
        if (typeid(std::ostream) == typeid(s))
        {
            std::ostream& os(dynamic_cast<std::ostream&>(s));
            os << o.a << ' ' << o.b << std::endl;
        } else {
            std::istream& is(dynamic_cast<std::istream&>(s));
            is >> o.a >> o.b;
        }
        return s;
    }
только что-то мне подсказывает, что ТС ошибся в описании задачи. Т.к. судя по всему они проходят перегрузку операторов, а написанное выше (и еще выше)) уже совсем другая тема.
Ответ Создать тему
Опции темы

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