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

Производные классы паблик и приват - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Создать базу из трех сотрудников, где будут храниться их имена http://www.cyberforum.ru/cpp-beginners/thread1226303.html
суть задачи: нужно создать базу из трех сотрудников, где будут храниться их имена, з.п, должности, дата приема на работу. должность должна быть в перечислении выражена, при чем пользователь должен ввести только первую букву должности, а на выходе должность должна быть написана полностью. все остальное структуры. все значения должны вводиться пользователем а потом выводиться на экран. вот что я...
C++ Допускается ли такое использование лямбды Имеется код #include <iostream> using namespace std; int main() { cout << ()->float{return 9.4;}; return 0; } http://www.cyberforum.ru/cpp-beginners/thread1226282.html
C++ Вызов шаблонного метода в зависимости от условия
#include <iostream> #include <stack> #include <queue> #include <type_traits> template<typename T> class has_front { template<typename R> struct checker {};
Печать текстового файла C++
Пытаюсь распечатать текстовый файл. Использую шаги и функции как написано в MSDN: To begin a print job, call StartDocPrinter. To begin each page, call StartPagePrinter. To write data to a page, call WritePrinter. To end each page, call EndPagePrinter. Repeat 2, 3, and 4 for as many pages as necessary. To end the print job, call EndDocPrinter.
C++ Подскажите самую лёгкую среду или блокнот с компилятором http://www.cyberforum.ru/cpp-beginners/thread1226222.html
Друзья! Довольно долго писал под линуксом (sublime + консоль). Теперь вернулся на винду и ищу среду. После блокнота и консоли все кажется тяжёлым и не нужным. Следовательно вопрос: подскажите самую лёгкую среду или блокнот с компилятором. Или подскажите как компилировать через консоль.
C++ Разобраться с рекурсивной функцией обхода бинарного дерева Люди, помогите разобраться с рекурсивной функцией обхода бинарного дерева. Бьюсь головой об стену, не могу понять как она работает. вот метод класса Tree для обхода дерева: void Tree::Print(Subscriber * Node) { if(Node != 0) { Print(Node->left); подробнее

Показать сообщение отдельно
Пацан_
2 / 2 / 1
Регистрация: 22.05.2013
Сообщений: 39
12.07.2014, 14:12     Производные классы паблик и приват
Здравствуйте, нужна помощь. Это пример из книги Лафоре ООП С++. Не могу понять почему программа работает, хотя при наследовании классы student и employee объявлены как private. Ведь public методы getdata(), getedu() и putdata(), putedu() должны быть недоступны для объектов классов наследников. Как так?

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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
//empmult.cpp
//multiple inheritance with employees and degrees
#include <iostream>
using namespace std;
const int LEN = 80;           //maximum length of names
////////////////////////////////////////////////////////////////
class student                 //educational background
   {
   private:
      char school[LEN];       //name of school or university
      char degree[LEN];       //highest degree earned
   public:
      void getedu()
         {
         cout << "   Enter name of school or university: ";
         cin >> school;
         cout << "   Enter highest degree earned \n";
         cout << "   (Highschool, Bachelor's, Master's, PhD): ";
         cin >> degree;
         }
      void putedu() const
         {
         cout << "\n   School or university: " << school;
         cout << "\n   Highest degree earned: " << degree;
         }
   };
////////////////////////////////////////////////////////////////
class employee
   {
   private:
      char name[LEN];         //employee name
      unsigned long number;   //employee number
   public:
      void getdata()
         {
         cout << "\n   Enter last name: "; cin >> name;
         cout << "   Enter number: ";      cin >> number;
         }
      void putdata() const
         {
         cout << "\n   Name: " << name;
         cout << "\n   Number: " << number;
         }
   };
////////////////////////////////////////////////////////////////
class manager : private employee, private student  //management
   {
   private:
      char title[LEN];        //"vice-president" etc.
      double dues;            //golf club dues
   public:
      void getdata()
         {
         employee::getdata();
         cout << "   Enter title: ";          cin >> title;
         cout << "   Enter golf club dues: "; cin >> dues;
         student::getedu();
         }
      void putdata() const
         {
         employee::putdata();
         cout << "\n   Title: " << title;
         cout << "\n   Golf club dues: " << dues;
         student::putedu();
         }
   };
////////////////////////////////////////////////////////////////
class scientist : private employee, private student  //scientist
   {
   private:
      int pubs;     //number of publications
   public:
      void getdata()
         {
         employee::getdata();
         cout << "   Enter number of pubs: "; cin >> pubs;
         student::getedu();
         }
      void putdata() const
         {
         employee::putdata();
         cout << "\n   Number of publications: " << pubs;
         student::putedu();
         }
   };
////////////////////////////////////////////////////////////////
class laborer : public employee             //laborer
   {
   };
////////////////////////////////////////////////////////////////
int main()
   {
   manager m1;
   scientist s1, s2;
   laborer l1;
 
   cout << endl;
   cout << "\nEnter data for manager 1";    //get data for
   m1.getdata();                            //several employees
 
   cout << "\nEnter data for scientist 1";
   s1.getdata();
 
   cout << "\nEnter data for scientist 2";
   s2.getdata();
 
   cout << "\nEnter data for laborer 1";
   l1.getdata();
 
   cout << "\nData on manager 1";           //display data for
   m1.putdata();                            //several employees
 
   cout << "\nData on scientist 1";
   s1.putdata();
 
   cout << "\nData on scientist 2";
   s2.putdata();
 
   cout << "\nData on laborer 1";
   l1.putdata();
   cout << endl;
   return 0;
   }
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 06:50. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru