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

Наследование (создать класс, который наследует базовый класс и производный класс от базового) - C++

Восстановить пароль Регистрация
 
Anastasia777
1 / 1 / 0
Регистрация: 23.09.2012
Сообщений: 59
09.12.2012, 18:50     Наследование (создать класс, который наследует базовый класс и производный класс от базового) #1
Вот код:
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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
#include "stdafx.h"
#include <iostream>
#include <conio.h>
#include <string.h>
using namespace std;
class Worker//базовый класс-Работник 
{  public: 
   Worker(char *, char *,char *, float); //конструктор
   void Show_Worker(void);               //прототип функции вывода на экран 
private: 
   char name [50];// имя
   char sername[50];// фамилия
   char family_status[64]; //семейное положение 
   float financ; //финансы
};
 Worker:: Worker(char *name, char *sername,char *family_status,float financ)//конструктор
{ strcpy(Worker::name, name); 
  strcpy(Worker::sername,sername); 
  strcpy(Worker::family_status,family_status); 
  Worker::financ=financ; 
}
void Worker::Show_Worker(void)//функция выввода на экран
{ cout<<"\n Имя :"<< name <<endl;
  cout<<"\n Фамилия :"<<sername<<endl;
  cout <<"\n Семейный статус :"<<family_status<<endl; 
  cout << "\n Деньги :" <<financ<< endl; 
}
class Programmer: public  Worker//производный класс-Программист 
{ public: 
   Programmer(char *, char *, char *, char *,char *, float, int);//конструктор
   void Show_Programmer(void); //прототип функции вывода на экран
  private: 
   char company[50];//имя компании 
   char lang[50];//язык, на котором программирует 
   int oput_in_years;//опыт работы 
 };
 
Programmer::Programmer(char *name, char *sername,char *family_status, char *company,char *lang, float financ, int oput_in_years): Worker(name,sername,family_status,financ)//конструктор
{strcpy(Programmer::company,company) ; 
 strcpy(Programmer::lang,lang) ; 
 Programmer::oput_in_years=oput_in_years;
}
void Programmer::Show_Programmer(void)//функция вывода на экран 
{Show_Worker(); //используется функция вывода на экран, определина в базовом классе
 cout << "Фирма :" << company<< endl; 
 cout << "Язык программирования :" <<lang<< endl; 
 cout <<"Опыт работы  :" <<oput_in_years<< endl; 
}
int main()
{setlocale(0,"rus");//подключаем русскую библиотеку
 Worker man("Вася ", "Петренко", "Женат" ,3500); //объект базового класса 
 Programmer woman("Анна", "Анникова","Замужем", "К_компания", "С++", 10000, 5); //объект проиводного класса 
 int komanda;//переменная для хранения вводимой пользователем команды 
 cout<<"\n Перед вами представлены несколько вариантов меню.Каждый вариант содержит некую \n  информацию о сотрудникак фирмы 'Progarammer Club'.Выберите интересующий вас пункт." <<endl;
 cout<<"\n 1.Простой работник"<<endl;
 cout<<"\n 2.Работник-программист"<<endl;
 cout<<"\n Для выхода нажмите '0' "<<endl;
 for(int i=0;i<10;i++)
{       cout<<"\n Введите команду :";
        cin>>komanda;
        if(komanda ==0)break;
        switch(komanda)
      { case 1:
        man.Show_Worker();
        break;
        case 2:
        woman.Show_Programmer();
        break;
        default:
        cout<<"\n Вы выбрали некоректную команду"<<endl;
      }
}
 getch();
 return 0;
}
В принципе я понимаю немного , как происходит наследование , но вот возник вопрос , как создать класс , который наследует базовый класс и производный класс от базового ? Как с ним работать?
Вот мне нужно например создать класс Help_Programmer и добавить к нему информацию -количество рабочих дней , но при этом оставить функции двух предыдущих классов . Как это сделать ? Подскажите , пожалуйста)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.12.2012, 18:50     Наследование (создать класс, который наследует базовый класс и производный класс от базового)
Посмотрите здесь:

Есть производный класс и базовый; при чём производный использует только ЧАСТЬ ресурсов базового, правильно ли это? C++
Создать базовый класс Points и производный от него Line C++
C++ Создать базовый класс - Array и производный класс - Money для работы денежной суммы
Указатели в базовом классе на базовый класс и производный класс C++
Создать класс линия и производный класс отрезок C++
C++ Создать абстрактный базовый класс Тройка чисел с виртуальными методами увеличения на 1. Создать производный класс Время со своими функциями
C++ Создать класс Man (человек), с полями: имя, возраст, пол и вес. Создать производный класс Student ...
C++ Разработать производный от абстрактного класса Figure класс и класс, производный от производного

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 12:31. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru