Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Наследование в классах

452
25 августа 2002 года
quasar1983
38 / / 20.04.2000
Имеется: класс A наследуется от класса B
Можно ли наследовать конструктор от B
Если да то как?
Заранее спасибо.
Аноним
Цитата:

On 2002-08-24 2053, quasar1983 wrote
Имеется класс A наследуется от класса B
Можно ли наследовать конструктор от B
Если да то как?
Заранее спасибо.


Конструкторы не наследуются. Если в А явно не объявлено конструктора, компилятор сгенерирует конструктор по умолчанию, в котором будет вызываться конструктор по умолчанию класса В. Если в этом случае в В отсутствует конструктор по умолчанию, будет ошиька. Если в класса А явно объявить коструктор, то вызвать конструктор В можно так

class B
{
int m_i;
public
B(int i){ m_i = i;}
};

class A public B
{
public
A(int i) B(i) {}
};

Кстати, подобный синтаксис можно было бы применить и к инициализации m_i в А.

577
27 августа 2002 года
Mozhay
81 / / 20.09.2000
Цитата:

On 2002-08-27 0710, Anonymous wrote
Если в А явно не объявлено конструктора, компилятор сгенерирует конструктор по умолчанию, в котором будет вызываться конструктор по умолчанию класса В.


Небольшое пояснение
К-тор по умолчанию - это к-тор без аргументов. Это - либо автоматически сгенерированный компилятором к-тор (если пользователь не определил ни одного к-тора), либо - определенный пользователем к-тор, который может быть вызван без аргументов. Если пользователь определил хотя бы один к-тор, компилятор не станет генерировать к-тор по умолчанию.

Цитата:

Кстати, подобный синтаксис можно было бы применить и к инициализации m_i в А.



Нельзя. m_i не является ни объектом базового для A класса ни нестатическим членом класса A. Так что прямой инициализации

AA(int i)
m_i(i)
{}

не получится.

[ Это Сообщение было отредактировано Mozhay в 2002-08-27 1651 ]

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог