Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
kotleta
42 / 42 / 11
Регистрация: 13.09.2012
Сообщений: 196
#1

Инициализация конструкторов производного класса - C++

28.10.2012, 10:52. Просмотров 325. Ответов 4
Метки нет (Все метки)

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
Есть два класса
 
class A
{
 int x,y;
 
 A(int a, int b): x(a), y(b)
 {
 }
};
 
class B
{
 A x, B y;
 B(int p1, int p2)
 {
  A(p1,p2);// выдает ошибку
  B(p1,p2); // выдает ошибку
 
 }
 
 B(int p1, int p2): A(p1,p2), B(p2,p1)
 {
  // нет ошибок
 
 }
 
 
 
}
Я правильно понимаю, что всегда необходимо в списке инициализаторов конструктора производного класса вызывать конструкторы объектов базового..

Вижу, что внутри нельзя

Это так всегда строго необходимо?

Кстати, ошибка будет выдана если

C++
1
2
3
4
5
B(int p1, int p2): A(p1,p2)
 {
  // нет ошибок
 
 }
т.е. проинициализирую только один объект класса
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.10.2012, 10:52
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Инициализация конструкторов производного класса (C++):

Инициализация членов производного кл. из конструктора базового кл. - C++
Добрый вечер, уважаемые форумчане! Сразу код; вопрос ниже... #include <iostream> using namespace std; class One { ...

Вызов метода производного класса через обращение к методу базового класса - C++
Добрый день. Изучаю основы ООП, наткнулся на проблему. Если создавать классы внутри main.cpp, то всё нормально. Если же создавать в...

Указатель на объект базового класса и адрес объекта производного класса - C++
Пример кода: class Class1 { public: Class1(int x) { j = new int; *j = x; } ~Class1() {delete j;}

Создание указателя типа базового класса на экземпляр производного класса - C++
Добрый день! Иногда видел коды, где создавался указатель типа базового класса на объект класса - наследника, для чего это может применяться?

Определить обработчик исключений на преобразование указателя базового класса на указатель производного класса - C++
Класс В является производным от класса А. Определить обработчик исключительной ситуации на преобразование указателя базового класса А на...

Вызов объектом базового класса функцию из производного класса! - C++
Как можно осуществить вызов или передачу значения в базовый класс для дальнейшего вычисления этого значения в производном классе. Вот...

4
soon
2542 / 1307 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
28.10.2012, 10:56 #2
kotleta, а теперь напишите компилябельный вариант и сравните со своим "кодом" в посте.
0
Jupiter
Каратель
Эксперт С++
6561 / 3982 / 227
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
28.10.2012, 10:58 #3
Цитата Сообщение от kotleta Посмотреть сообщение
Я правильно понимаю, что всегда необходимо в списке инициализаторов конструктора производного класса вызывать конструкторы объектов базового..
правильно
Цитата Сообщение от kotleta Посмотреть сообщение
Это так всегда строго необходимо?
да

Не по теме:

ибо "Авраам родил Исаака; Исаак родил Иакова; Иаков родил Иуду и братьев его; Иуда родил Фареса и Зару от Фамари; Фарес родил Есрома; Есром продил Арама..."
проинициализировать Исаака не проинициализировав при этом Авраама невозможно

1
Игорь с++
437 / 460 / 16
Регистрация: 26.01.2011
Сообщений: 2,033
28.10.2012, 11:05 #4
Цитата Сообщение от Jupiter Посмотреть сообщение
ибо "Авраам родил Исаака; Исаак родил Иакова; Иаков родил Иуду и братьев его; Иуда родил Фареса и Зару от Фамари; Фарес родил Есрома; Есром продил Арама..."
проинициализировать Исаака не проинициализировав при этом Авраама невозможно
Клас!!!!
0
kotleta
42 / 42 / 11
Регистрация: 13.09.2012
Сообщений: 196
28.10.2012, 12:54  [ТС] #5
Jupiter, спасибо вам, очень конкретно, точно, и понятно!!
0
28.10.2012, 12:54
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.10.2012, 12:54
Привет! Вот еще темы с ответами:

Использование перегруженного оператора ввода/вывода в поток базового класса для объекта производного класса - C++
Здравствуйте! Можно ли использовать перегруженный оператор ввода/вывода в поток из базового класса для объекта производного класса, если...

Сборка проекта, объявление и инициализация конструкторов в одном месте - C++
Всем привет! Столкнулся с такой проблемой как "много файловая" программа. А именно если конструктор и диструктор описывать например в A.h...

как сделать чтобы объект производного класса сам себя добавлял в список или массив указателей базового класса? - C++
я хотел так, но программа просто падает void Student::add(Base** head) { cout << "I here" << endl; this->setName(); //все...

Тип производного класса - C++
Как можно узнать тип производного класса на этапе компиляции?#include <iostream> #include <type_traits> struct A {}; struct B : A...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.