3 / 3 / 0
Регистрация: 18.01.2016
Сообщений: 198

Почему не выводятся данные родительского класса

16.09.2016, 21:49. Показов 1107. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
помогите с кодом
не могу понять почему не выводит данные родительского класса
при при вызове дочернего
вот код тут все понятно должно быть

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
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
// 2.   Создайте класс Passport (паспорт), который будет содержать паспортную 
//информацию о гражданине Украины. С помощью механизма наследования, реализуйте 
//класс ForeignPassport (загран.паспорт), производный от Passport. Загран.паспорт 
//содержит помимо паспортных данных, также данные о визах. Виза должна быть представлена отдельным классом.
 
#include <time.h>
#include <iostream>
#include <string>
 
using namespace std;
 
class Date
{
 
    int day;
    int month;
    int year;
public:
    Date(int d = 1, int m = 1, int y = 2000) :day(d), month(m), year(y)
    {
    }
    void SetDay(int day)
    {
        this->day = day;
    }
    void SetMonth(int month)
    {
        this->month = month;
    }
    void SetYear(int year)
    {
        this->year = year;
    }
    const int GetDay() const
    {
        return day;
    }
    const int GetMonth() const
    {
        return month;
    }
    const int GetYear() const
    {
        return year;
    }
};
class Passport
{
    string surname;//фамилия
    string name;//имья
    string patronymic;//отчество
    Date birthday;//дата рождения
    string adress;//фактичный адресс
    string registration;//адресс прописки
 
 
public:
 
    void SetSurname(string surname)
    {
        this->surname = surname;
    }
 
    void SetName(string name)
    {
        this->name = name;
    }
 
 
    void SetPatronymic(string patronymic)
    {
        this->patronymic = patronymic;
    }
 
 
    void SetBirthday(int day, int month, int year)
    {
        birthday.SetDay(day);
        birthday.SetMonth(month);
        birthday.SetYear(year);
    }
 
    void SetAdress(string adress)
    {
        this->registration = registration;
    }
 
    void SetRegistration(string registration)
    {
        this->registration = registration;
    }
 
 
    //геттеры 
 
     string const GetSurname() const
    {
        return surname;
    }
 
      string const GetName() const
    {
        return name;
    }
 
      string const GetPatronymic() const
    {
        return patronymic;
    }
 
    Date GetBirthday() const
    {
        return birthday;
    }
 
 
      string const GetAdress() const
    {
        return  adress;
    }
 
      string const GetRegistration() const
    {
        return  registration;
    }
 
    //показ всех данных о студенте
    void Print()
    {
     
        cout << "фамилия: " << surname << "\n";
        cout << "имья: " << name << "\n";
        cout << "отчество: " << patronymic << "\n";
        cout << "дата рождения: " << birthday.GetDay() << "." << birthday.GetMonth() << "." << birthday.GetYear() << "\n";
        cout << "фактичный адресс: " << "ул. " << adress << "\n";
        cout << "адресс прописки: " << registration << "\n";
        cout << "\n";
    }
 
    //конструктор по умолчанию
    Passport() :surname(""), name(""), patronymic(""), birthday(Date(1, 1, 2000)), adress(""), registration("")
    {
 
    }
    //2 - 3 версии конструктора с параметрами
    Passport(string _Surname, string _Name, string _Patronymic, Date _Birthday) :
        surname(_Surname), name(_Name), patronymic(_Patronymic), birthday(_Birthday),
        adress("г.Одесса Одесская обл. ул.Посмитного 33"), registration("г.Костополь Ровенская обл. ул.Ровенская 76/186")
    {
 
    }
 
    Passport(string _Surname, string _Name, string _Patronymic, Date _Birthday, string _Adress) :
        surname(_Surname), name(_Name), patronymic(_Patronymic), birthday(_Birthday),
        adress(_Adress), registration("г.Костополь Ровенская обл. ул.Ровенская 76/186")
    {
 
    }
 
    //главный конструктор 
    Passport(string _Surname, string _Name, string _Patronymic, Date _Birthday, string _Adress, string _Registration) :
        surname(_Surname), name(_Name), patronymic(_Patronymic), birthday(_Birthday), adress(_Adress), registration(_Registration)
    {
 
    }
 
    ~Passport()
    {
 
    }
 
};
 
 
class ForeignPassport : public Passport
{
    string nationality;
    string become;
    int age;
public:
 
    //сеттеры:
    void Setnationality(string nationality)
    {
        this->nationality = nationality;
    }
    void Setbecome(string become)
    {
        this->become = become;
    }
    void Setage(int age)
    {
        this->age = age;
    }
    //геттеры 
    const string Getnationality() const
    {
        return nationality;
    }
 
    const string Getbecome() const
    {
        return become;
    }
 
    int Getage() const
    {
        return age;
    }
 
    //показ всех данных о студенте
    void Print()
    {
        Passport::Print();
        cout << "национальность: " << nationality << "\n";
        cout << "стать: " << become << "\n";
        cout << "возраст: " << age << " лет" << "\n";
        cout << "\n";
    }
    //конструктор по умолчанию
    ForeignPassport() : nationality(""), become(""), age()
    {
    }
    //2 - 3 версии конструктора с параметрами
    ForeignPassport(string nationality) : become(become)
    {
 
    }
    ForeignPassport(string nationality, string become) : nationality(nationality), become(become)
    {
    }
 
    //главный конструктор 
    ForeignPassport(string N, string B, int _A) : nationality(N), become(B), age(_A)
    {
    }
 
    ~ForeignPassport()
    {
 
    }
 
};
 
void main()
{
    setlocale(LC_ALL, "Rus");
    Passport a("Рубик", "Наталия", "Петровна", Date(11, 12, 1887), " г.Одесса Одесская обл.ул.Посмитного 33 ",
        "г.Костополь Ровенская обл. ул.Ровенская 76/186");
    a.Print();
    Passport b("Романов", "Жора", "Валентинович", { 3, 13, 1877 }, "г.Одесса Одесская обл.ул.Поскотного 1",
        "г.Костополь Ровенская обл. ул.Стуса 5/34");
    b.Print();
 
    cout << "\n------------------------------------------\n";
 
    ForeignPassport c("казахстанка", "жен.", 33);
    c.Print();
    ForeignPassport d("украинец", "муж.", 33);
    d.Print();
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
16.09.2016, 21:49
Ответы с готовыми решениями:

Почему внук родительского класса не может работать с полями дедовского класса?
Не всё так просто на самом деле. Непонятно, какую роль во всём этом играют шаблоны. Но к делу. Вот код: class base { public: base...

Как вывести данные на форму из класса Reader, данные выводятся только в консоль
MainAplication.java package main; import javafx.application.Application; import javafx.fxml.FXMLLoader; import...

Доступ к методу родительского класса из метода свойства родительского класса
Не знаю правильно ли написал тему, ну суть такая, есть класс который описывает допустим шарик, а есть класс который описывает массив этих...

10
Эксперт С++
1624 / 954 / 782
Регистрация: 06.02.2016
Сообщений: 2,452
Записей в блоге: 31
16.09.2016, 22:08
Zigoga, Потому что данные родительского класса должны вводится в наследнике через его же конструктор
0
3 / 3 / 0
Регистрация: 18.01.2016
Сообщений: 198
16.09.2016, 22:11  [ТС]
Peoples, те данные что в родителе мне нужно что бы я в наследнике не вводил а вводил только новые которых нету и плюс мне еще родительские покажет при вызове наследника в мейне
0
Эксперт С++
1624 / 954 / 782
Регистрация: 06.02.2016
Сообщений: 2,452
Записей в блоге: 31
16.09.2016, 22:12
C++
1
ForeignPassport(string s=" ", string n=" ",string p=" ",data bi,string adr=" ",string r=" ",string nati=" ", string becom=" ",int a=0):Passport(s,n,p,bi,adr,r):nationality(n),become(becom),age(a){}
0
16.09.2016, 22:22

Не по теме:

а как удалять свои сообщения тут?:)

0
3 / 3 / 0
Регистрация: 18.01.2016
Сообщений: 198
16.09.2016, 22:26  [ТС]
Peoples, какие данные за что отвечают в конструкторе вашем
чет понять не могу
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
16.09.2016, 23:52
Zigoga, если, в списке инициализаторов конструктора производного класса, нет явного вызова конструктора базового класса, то будет неявно вызван конструктор базового по умолчанию, т.е. вот этот:
Цитата Сообщение от Zigoga Посмотреть сообщение
//конструктор по умолчанию
C++
1
2
3
Passport() :surname(""), name(""), patronymic(""), birthday(Date(1, 1, 2000)), adress(""), registration("")
 {
}
0
3 / 3 / 0
Регистрация: 18.01.2016
Сообщений: 198
17.09.2016, 00:04  [ТС]
nd2, тогда как заставить программу вызвать главный конструктор
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
17.09.2016, 00:28
В списке инициализаторов конструктора производного класса сделай явный вызов конструктора базового с параметрами. Параметры для него передай через параметры конструктора производного класса.

Добавлено через 5 минут
Например:
C++
1
2
3
ForeignPassport(string _Surname, string _Name, string _Patronymic, Date _Birthday, string nationality, string become) : Passport(_Surname, _Name, _Patronymic, _Birthday), nationality(nationality), become(become)
{
}
0
17.09.2016, 01:46

Не по теме:

Цитата Сообщение от Selot Посмотреть сообщение
а как удалять свои сообщения тут?
Я обычно просто заменяю текст сообщения словом "del" и модераторы, видя это, удаляют. Спасибо им за это! :good:

0
3 / 3 / 0
Регистрация: 18.01.2016
Сообщений: 198
17.09.2016, 16:53  [ТС]
nd2, кажется все получилось
вроде дошло ток всеравно посмотрите код исправлений буду очень благодарен

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
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
// 2.   Создайте класс Passport (паспорт), который будет содержать паспортную 
//информацию о гражданине Украины. С помощью механизма наследования, реализуйте 
//класс ForeignPassport (загран.паспорт), производный от Passport. Загран.паспорт 
//содержит помимо паспортных данных, также данные о визах. Виза должна быть представлена отдельным классом.
 
#include <time.h>
#include <iostream>
#include <string>
 
using namespace std;
 
class Date
{
 
    int day;
    int month;
    int year;
public:
    Date(int d = 1, int m = 1, int y = 2000) :day(d), month(m), year(y)
    {
    }
    void SetDay(int day)
    {
        this->day = day;
    }
    void SetMonth(int month)
    {
        this->month = month;
    }
    void SetYear(int year)
    {
        this->year = year;
    }
    const int GetDay() const
    {
        return day;
    }
    const int GetMonth() const
    {
        return month;
    }
    const int GetYear() const
    {
        return year;
    }
};
class Passport
{
    string surname;//фамилия
    string name;//имья
    string patronymic;//отчество
    Date birthday;//дата рождения
    string adress;//фактичный адресс
    string registration;//адресс прописки
 
 
public:
 
    void SetSurname(string surname)
    {
        this->surname = surname;
    }
 
    void SetName(string name)
    {
        this->name = name;
    }
 
 
    void SetPatronymic(string patronymic)
    {
        this->patronymic = patronymic;
    }
 
 
    void SetBirthday(int day, int month, int year)
    {
        birthday.SetDay(day);
        birthday.SetMonth(month);
        birthday.SetYear(year);
    }
 
    void SetAdress(string adress)
    {
        this->registration = registration;
    }
 
    void SetRegistration(string registration)
    {
        this->registration = registration;
    }
 
 
    //геттеры 
 
     string const GetSurname() const
    {
        return surname;
    }
 
      string const GetName() const
    {
        return name;
    }
 
      string const GetPatronymic() const
    {
        return patronymic;
    }
 
    Date GetBirthday() const
    {
        return birthday;
    }
 
 
      string const GetAdress() const
    {
        return  adress;
    }
 
      string const GetRegistration() const
    {
        return  registration;
    }
 
    //показ всех данных о студенте
    virtual void Print()
    {
     
        cout << "фамилия: " << surname << "\n";
        cout << "имья: " << name << "\n";
        cout << "отчество: " << patronymic << "\n";
        cout << "дата рождения: " << birthday.GetDay() << "." << birthday.GetMonth() << "." << birthday.GetYear() << "\n";
        cout << "фактичный адресс: " << "ул. " << adress << "\n";
        cout << "адресс прописки: " << registration << "\n";
        cout << "\n";
    }
 
    //конструктор по умолчанию
    Passport() :surname(""), name(""), patronymic(""), birthday(Date(1, 1, 2000)), adress(""), registration("")
    {
 
    }
    //2 - 3 версии конструктора с параметрами
    Passport(string _Surname, string _Name, string _Patronymic, Date _Birthday) :
        surname(_Surname), name(_Name), patronymic(_Patronymic), birthday(_Birthday),
        adress("г.Одесса Одесская обл. ул.Посмитного 33"), registration("г.Костополь Ровенская обл. ул.Ровенская 76/186")
    {
 
    }
 
    Passport(string _Surname, string _Name, string _Patronymic, Date _Birthday, string _Adress) :
        surname(_Surname), name(_Name), patronymic(_Patronymic), birthday(_Birthday),
        adress(_Adress), registration("г.Костополь Ровенская обл. ул.Ровенская 76/186")
    {
 
    }
 
    //главный конструктор 
    Passport(string _Surname, string _Name, string _Patronymic, Date _Birthday, string _Adress, string _Registration) :
        surname(_Surname), name(_Name), patronymic(_Patronymic), birthday(_Birthday), adress(_Adress), registration(_Registration)
    {
 
    }
 
    ~Passport()
    {
 
    }
 
};
 
 
class ForeignPassport : public Passport
{
    string nationality;
    string become;
    int age;
public:
 
    //сеттеры:
    void Setnationality(string nationality)
    {
        this->nationality = nationality;
    }
    void Setbecome(string become)
    {
        this->become = become;
    }
    void Setage(int age)
    {
        this->age = age;
    }
    //геттеры 
    const string Getnationality() const
    {
        return nationality;
    }
 
    const string Getbecome() const
    {
        return become;
    }
 
    int Getage() const
    {
        return age;
    }
 
    //показ всех данных о студенте
    void Print()
    {
        Passport::Print();
        cout << "национальность: " << nationality << "\n";
        cout << "стать: " << become << "\n";
        cout << "возраст: " << age << " лет" << "\n";
        cout << "\n";
    }
    
    //конструктор по умолчанию
    ForeignPassport() : nationality(""), become(""), age()
    {
         
    }
    //2 - 3 версии конструктора с параметрами
    ForeignPassport(string nationality) : become(become)
    {
 
    }
    ForeignPassport(string nationality, string become) : nationality(nationality), become(become)
    {
    }
 
    //главный конструктор 
    ForeignPassport(string N, string B, int _A) : nationality(N), become(B), age(_A)
    {
    }
 
    ForeignPassport(string _Surname, string _Name, string _Patronymic, Date _Birthday, string _Adress, string _Registration, 
        string nationality, string become, int _A) :
        Passport(_Surname, _Name, _Patronymic, _Birthday, _Adress, _Registration), 
        nationality(nationality), become(become), age(_A)
    {
        
    }
 
    ~ForeignPassport()
    {
 
    }
 
};
 
void main()
{
    setlocale(LC_ALL, "Rus");
    Passport* a = new Passport("Рубик", "Наталия", "Петровна", Date(11, 12, 1887), " г.Одесса Одесская обл.ул.Посмитного 33 ",
        "г.Костополь Ровенская обл. ул.Ровенская 76/186");
    a->Print();
    Passport* b = new Passport("Романов", "Жора", "Валентинович", { 3, 13, 1877 }, "г.Одесса Одесская обл.ул.Поскотного 1",
        "г.Костополь Ровенская обл. ул.Стуса 5/34");
    b->Print();
 
    cout << "\n------------------------------------------\n";
 
    ForeignPassport* c = new ForeignPassport("Рубик", "Наталия", "Петровна", Date(11, 12, 1887),
        " г.Одесса Одесская обл.ул.Посмитного 33 ",
        "г.Костополь Ровенская обл. ул.Ровенская 76/186", "казахстанка", "жен.", 33);
    c->Print();
    ForeignPassport* d = new ForeignPassport("Романов", "Жора", "Валентинович", { 3, 13, 1877 }, 
        "г.Одесса Одесская обл.ул.Поскотного 1",
        "г.Костополь Ровенская обл. ул.Стуса 5/34", "украинец", "муж.", 33);
    d->Print();
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
17.09.2016, 16:53
Помогаю со студенческими работами здесь

ООП: почему в потомке родительского класса не изменяются координаты?
Здравствуйте, никак не могу понять,почему в потомке родительского класса не изменяются координаты в с помощью метода moove() import...

Почему поле родительского класса не видимо в классе-наследнике?
Доброго времени суток! Прописал код с классом-наследником. И компилятор выдаёт, что нет доступа в строке temp.dt = dt; ...

Почему не выводятся данные?
&lt;?php include 'database.php' $link = mysql_connect('cyber-park.ru','fireflow1919','discovery1'); if (!$link) { die('Ошибка...

Почему не выводятся данные из базы
вот мой код &lt;?php //вывод заголоука с данными о кодировке страницы header ('Content-type: text/html; charset=utf-8/'); // Настройка...

Почему не выводятся данные из БД PHP?
Здравствуйте! Почему-то приведённый ниже код ничего не выводит (хотя я проверял, запрос выполняется - поставил or die ()) &lt;?php ...


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

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

Новые блоги и статьи
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а привычная функция main(). . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
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
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами 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/
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru