Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Visual C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.05.2011, 05:35   #1
tiger()
Пользователь
 
Регистрация: 09.04.2011
Сообщений: 49
По умолчанию конструктор наследника абстрактного класса

всем привет!
помогите пожалуйста разобраться.

базовый класс

Код:
class ONE
{

virtual int f1(const int& value);
virtual ~ONE()
{
}

}
и его наследник
Код:
class TWO: public ONE
{

int f1(const int& value);
~TWO();

}
компилятор ругается что нет конструктора класса TWO по умолчанию. как его правильно писать? нужно ли его прописывать виртуальным в базовом классе?
tiger() вне форума Ответить с цитированием
Старый 11.05.2011, 07:01   #2
Hemul
Форумчанин
 
Регистрация: 03.10.2010
Сообщений: 321
По умолчанию

~TWO() - это деструктор
TWO() - это конструктор
Hemul вне форума Ответить с цитированием
Старый 11.05.2011, 07:37   #3
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,520
По умолчанию

Цитата:
Сообщение от tiger() Посмотреть сообщение
компилятор ругается что нет конструктора класса TWO по умолчанию. как его правильно писать?
Приведённый код, по идее, должен фунциклировать, а конструктор по умолчанию должен автоматически создаваться компилятором.
Цитата:
Сообщение от tiger() Посмотреть сообщение
нужно ли его прописывать виртуальным в базовом классе?
Конструктор не может быть виртуальным.
pu4koff вне форума Ответить с цитированием
Старый 11.05.2011, 12:29   #4
tiger()
Пользователь
 
Регистрация: 09.04.2011
Сообщений: 49
По умолчанию

Цитата:
Сообщение от pu4koff Посмотреть сообщение
Приведённый код, по идее, должен фунциклировать, а конструктор по умолчанию должен автоматически создаваться компилятором.
ага, тоже думал что должен создаваться.
это же не зависит от типов функций и переменных классов?
tiger() вне форума Ответить с цитированием
Старый 11.05.2011, 15:45   #5
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,520
По умолчанию

А блин. у классов же область видимости по умолчанию private.
Нужно:
Код:
class ONE
{
public:
	virtual int f1(const int& value);
	virtual ~ONE() {}

};


class TWO: public ONE
{
public:
	int f1(const int& value);
	~TWO();

};
pu4koff вне форума Ответить с цитированием
Старый 15.05.2011, 07:16   #6
tiger()
Пользователь
 
Регистрация: 09.04.2011
Сообщений: 49
По умолчанию

Цитата:
Сообщение от pu4koff Посмотреть сообщение
А блин. у классов же область видимости по умолчанию private.
Нужно:
Код:
class ONE
{
public:
	virtual int f1(const int& value);
	virtual ~ONE() {}

};


class TWO: public ONE
{
public:
	int f1(const int& value);
	~TWO();

};
странно, но и с public конструктор не создается.
tiger() вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Netbeans редактирование фрейма из класса не наследника Nicko_mt Общие вопросы по Java, Java SE, Kotlin 3 19.04.2011 15:35
Конструктор класса наследующего от TFileStream (BC++) YuryGunko Помощь студентам 0 03.06.2010 20:38
Конструктор класса XPAiN Общие вопросы Delphi 2 24.01.2010 15:00
Передать массив базового абстрактного класса функциям производных классов mishutka999 Общие вопросы C/C++ 2 01.12.2009 14:08
Различие абстрактного класса и интерфейса(ООП) Ruzarh PHP 0 20.11.2009 15:29