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

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

Войти
Регистрация
Восстановить пароль
 
sandye51
программист С++
686 / 591 / 39
Регистрация: 19.12.2010
Сообщений: 2,016
#1

Оператор вывода для иерархии - C++

16.11.2012, 00:26. Просмотров 316. Ответов 3
Метки нет (Все метки)

Добрый вечер всем,

Имеется класс Person, от него отнаследован класс Student.
Есть 2 оператора чтения из потока

C++
1
2
std::istream& operator>> (std::istream&, Person&);
std::istream& operator>> (std::istream&, Student&);
Создается объект
C++
1
Student s;
Неожиданным для меня оказалось, что следующий код:
C++
1
std::cin >> s;
Вызывает первый оператор. Как решить такую проблему?

Добавлено через 17 минут
upupup
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.11.2012, 00:26
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Оператор вывода для иерархии (C++):

Не получается перегрузить оператор вывода для дружественной функции - C++
Не могу понять почему пытаясь перегрузить оператор вывода использую дружественную функцию, я не могу передать объект по значению, это...

Как перегрузить оператор вывода в поток для вектора? - C++
Стало интересно реализовать подобный функционал, и конечно же ничего не работает. При этом коде: template<class T> ...

Условный оператор, оператор ввода/вывода; плоскость и принадлежность точки - C++
Здравствуйте. В С++ я абсолютный новичок, поэтому с первым же заданием возникли определённые трудности. Будьте добры, помогите решить. Буду...

Оператор cin. Задать ширину для вывода нескольких значений - C++
Добрый вечер, уважаемые программисты. Проблема заключается в следующем: При выводе таблицы столбцы получаются неровными. Вот код: ...

Итераторы: зачем используется оператор инкремента для потоков вывода? - C++
Хотел уточнить зачем используется оператор инкремента для потоков вывода: void main(void) { std::ostream_iterator<int>...

Переписать программу так, чтобы для вывода на экран каждого операнда использовался отдельный оператор - C++
Читаю учебник C++, не могу разобраться с задачей, прошу помощи. Код: #include <iostream> int main() { std::cout << "Programma...

3
Venzo
125 / 123 / 4
Регистрация: 03.07.2011
Сообщений: 354
16.11.2012, 00:42 #2
мм, у меня все как и ожидалось(gcc 4.6.3)
0
I.M.
566 / 549 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
16.11.2012, 00:44 #3
sandye51, вы точно именно ТАК создаете объект? может все-таки через new?
и можно ваш пример, воспроизводящий дефект?
0
Venzo
125 / 123 / 4
Регистрация: 03.07.2011
Сообщений: 354
16.11.2012, 00:45 #4
и тут вроде тоже
0
16.11.2012, 00:45
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.11.2012, 00:45
Привет! Вот еще темы с ответами:

Перегруженный оператор вывода - C++
Пытаюсь написать шаблон для работы с бинарными деревьями поиска. Возникла проблема - с ходу не соображу что к чему. при попытке...

Шаблон и оператор вывода! - C++
Вот код программы: #include <iostream.h> #pragma hdrstop #pragma argsused const int DefaultSize=10; class Animal ...

Перегруженный оператор вывода - C++
Есть базовый класс Точка и его наследник Круг. Как в Круге использовать operator<< для Точки? Надо вывести координаты центра круга ...

Шаблоны и оператор вывода - C++
template <class Xtype, int n, int m> class Mtype { Xtype M; public: Mtype() { cout << "Введите матрицу M:\n"; for (int i =...


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

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

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