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

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

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

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

28.10.2012, 10:52. Просмотров 317. Ответов 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)
 {
  // нет ошибок
 
 }
т.е. проинициализирую только один объект класса
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.10.2012, 10:52     Инициализация конструкторов производного класса
Посмотрите здесь:

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

Предобъявление производного класса - C++
Привет всем. Такой вопрос:как предобъявить производный класс? Просто нужно сделать функцию друга как для производного, так и для базового...

Доступ к методам производного класса - C++
Есть базовый класс CJobGeneral. В нём описано несколько методов. Есть унаследованный от него CJobCitomir с рядом своих методов. Есть...

Вызов методов производного класса - C++
Возникла проблема с выполнением задачи. программа запускается, работает, но почему-то не выводит метод scan и print наследовательного...

Обращение к бинарным операторам производного класса - C++
В классе StrLIdf, потомке StrL описан оператор friend StrLIdf operator& (const StrLIdf &, const StrLIdf &); StrLIdf operator&...

Передача массива в конструктор производного класса - C++
Народ, задача такая: Создать абстрактный класс с виртуальной функцией – норма. Создать производные классы : комплексные ...

Отрабатывает оператор базового, а не производного класса - C++
Здравствуйте! Собственно, вопрос в следующем. Я перегрузил оператор потокового вывода для базового и для производного класса. При выводе...

Массив обьектов класса предка и производного - C++
Можно ли, если у меня есть базовый НЕ абстрактный класс и проиводный от него с добавленым полем, допустим, целое число, сделать массив,...

Передача типа из производного класса в родительский - C++
Добрый день! Есть код: template<typename T> struct Base { void test(typename T::Axis aaa) {} }; struct Child :...

Перегрузка operator>> для производного класса - C++
Базовый класс: Taxi_Car.h: #pragma once #include<string> using namespace std; class Taxi_Car { string Marka;


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

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

Не по теме:

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

Игорь с++
434 / 457 / 16
Регистрация: 26.01.2011
Сообщений: 2,032
28.10.2012, 11:05     Инициализация конструкторов производного класса #4
Цитата Сообщение от Jupiter Посмотреть сообщение
ибо "Авраам родил Исаака; Исаак родил Иакова; Иаков родил Иуду и братьев его; Иуда родил Фареса и Зару от Фамари; Фарес родил Есрома; Есром продил Арама..."
проинициализировать Исаака не проинициализировав при этом Авраама невозможно
Клас!!!!
kotleta
42 / 42 / 11
Регистрация: 13.09.2012
Сообщений: 196
28.10.2012, 12:54  [ТС]     Инициализация конструкторов производного класса #5
Jupiter, спасибо вам, очень конкретно, точно, и понятно!!
Yandex
Объявления
28.10.2012, 12:54     Инициализация конструкторов производного класса
Ответ Создать тему
Опции темы

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