1 / 1 / 2
Регистрация: 23.09.2012
Сообщений: 59
1

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

09.12.2012, 18:50. Показов 1630. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Вот код:
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 и добавить к нему информацию -количество рабочих дней , но при этом оставить функции двух предыдущих классов . Как это сделать ? Подскажите , пожалуйста)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.12.2012, 18:50
Ответы с готовыми решениями:

Наследование: базовый класс Квадрат, производный класс Пирамида
Помогите, пожалуйста!:cry: Добавлено через 6 минут Создать класс КВАДРАТ, член класса- длинна...

Создать базовый класс Car (машина) и производный класс Lorry (грузовик): ООП ошибки
Создать базовый класс Car (машина), характеризуемый торговой маркой (строка), числом цилиндров,...

Создать базовый класс - Array и производный класс - Money для работы денежной суммы
ПОМОГИТЕ, ПОЖАЛУЙСТА, С ЗАДАЧЕЙ Создать базовый класс - Array и производный класс - Money для...

Создать базовый класс Polygon и производный класс Triangle
Создать базовый класс Polygon (многоугольник). Класс должен содержать методы для рисования...

0
09.12.2012, 18:50
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.12.2012, 18:50
Помогаю со студенческими работами здесь

Создать базовый класс Triad и производный класс vector3D
Помогите пожалуйста с заданием. Часть кода(vector3D) сделал, вроде работает Нужно помочь с классом...

Создать базовый класс Тройка_чисел (Triad) и производный класс Time с полями часы, минуты и секунды
Наследование. Виртуальныефункции.Полиморфизм. 1. Цельзадания: 1) Создание консольного приложения,...

Создать абстрактный базовый класс Тройка чисел с виртуальными методами увеличения на 1. Создать производный класс Время со своими функциями
Здравствуйте, пожалуйста помогите написать код к данной задаче, с таким условием: Создать...

Есть производный класс и базовый; при чём производный использует только ЧАСТЬ ресурсов базового, правильно ли это?
Ну то есть базовый класс A, с полями, допустим, a, b, c, d. И я проектирую производный класс B и я...

Базовый класс Complex и производный класс для реализации квадратных матриц
1) Создайте базовый класс Complex (комплексное число) для реализации комплексных чисел в...

Указатели в базовом классе на базовый класс и производный класс
Пишу контейнер &quot;Бинарное дерево поиска&quot; для частотного словаря. С самим контейнером особо...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru