Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
 Аватар для Why so seriouS
45 / 45 / 12
Регистрация: 12.03.2013
Сообщений: 167

Перегруженные потоковые операторы при наследовании

29.04.2013, 19:14. Показов 880. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
В базовом классе есть перегружены операторы взять из потока и вывести в поток, в производном классе они также перегружены. Как мне вызвать операторы базового класса из производного? Ну допустим есть объект класса Father F; , когда я пишу вот так cout<<F; то должен вызываться и метод вывода базового класса, а когда есть объект класса Employee E; и при такой записи cout<<E; должна вызываться только его функция.
Кликните здесь для просмотра всего текста
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
36
37
38
39
40
41
#ifndef father_h
#define father_h
 
#include <string.h>
#include <iostream>
 
#include "employee.h"
 
using namespace std;
 
class Father : public Employee
{
    friend ostream &operator<<(ostream& output,const Father& F)
    {
        output<<"Зарплата батька: "<<F.salary<<endl
              <<"Робота батька: "<<F.jobs<<endl;
 
        return output;
    }
 
    friend istream &operator>>(istream& input, Father& F)
    {
        cout<<"Введіть зарплату батька: ";
        input>>F.salary;
        cout<<"Введіть роботу батька: ";
        input>>F.jobs;
        
        return input;
    }
public:
    Father() : Employee()
    {
        salary = 0;
        strcpy(jobs,"");
    }
private:
    int salary;
    char jobs[10];
};
 
#endif

Кликните здесь для просмотра всего текста
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
36
37
38
39
40
41
42
43
44
45
#ifndef employee_h
#define employee_h
 
#include <string.h>
#include <iostream>
 
using namespace std;
 
class Employee
{
    friend ostream &operator<<(ostream& output,const Employee& E)
    {
        output<<"Імя працівника: "<<E.firstName<<endl
              <<"Прізвище працівника: "<<E.lastName<<endl
              <<"Індефікаційний код працівника: "<<E.indefical_code<<endl;
 
        return output;
    }
 
    friend istream &operator>>(istream& input, Employee& E)
    {
        cout<<"Введіть імя працівника: ";
        input>>E.firstName;
        cout<<"Введіть прізвище працівника: ";
        input>>E.lastName;
        cout<<"Введіть індефікаційний код працівника: ";
        input>>E.indefical_code;
 
        return input;
    }
 
public:
    Employee()
    {
        indefical_code = 0;
        strcpy(firstName,"");
        strcpy(lastName,"");
    }
protected:
    int indefical_code;
    char firstName[10];
    char lastName[10];
};
 
#endif
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
29.04.2013, 19:14
Ответы с готовыми решениями:

Не работают перегруженные операторы
проблема такова: есть перегруженный оператор &quot;=&quot;, при вызове которого выполняется присвоение значений массива, однако же, результат...

Указатели и перегруженные операторы
Когда перегружается какой нибудь оператор, допустим квадратные скобки, то для использования оператора нужно писать такую конструкцию: ...

Перегруженные функции и операторы
вопрос может быть тривиальный, но все же: как влияет количество вариантов перегруженных функций и операторов на скорости обработки? то...

1
:)
Эксперт С++
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
30.04.2013, 12:49
Why so seriouS, добавить в дочернем классе вызов оператора для базового. Как-то так:

C++
1
2
3
4
5
6
7
8
friend ostream &operator<<(ostream& output,const Father& F)
    {
        output << static_cast<const Employee&>(F);
        output<<"Зарплата батька: "<<F.salary<<endl
              <<"Робота батька: "<<F.jobs<<endl;
 
        return output;
    }
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
30.04.2013, 12:49
Помогаю со студенческими работами здесь

Перегруженные операторы - ошибка в коде
Здравствуйте. Подскажите, пожалуйста, в чем ошибка. Нужно описать класс динамического массива и перегрузить операторы. С перегрузкой...

Перегруженные логические операторы И, ИЛИ
Учу по Шилдту плюсы. Дошел до перегрузки операторов. С некоторыми понятно, но вот некоторые вызывают проблемы. Напишите, пожалуйста,...

Класс Эллипс. Перегруженные операторы
#include &lt;iostream&gt; using namespace std; class Ellipse { private: double bigRadius; //большая полуось double...

Классы. Перегруженные операторы ввода-вывода
Есть класс book, который описывает 3 типа данных, то есть автор - char, название книги - char, год - int. Нужно использовать...

Класс вектор с арифметическими операциями, перегруженные операторы
Добрый день! Нужна помощь. Реализовываю класс вектор с арифметическими операторами с помощью контейнера &lt;vector&gt;. У меня имеются...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru