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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 11.04.2016, 17:01   #1
Ali77777
 
Регистрация: 21.06.2012
Сообщений: 3
По умолчанию Наследование конструкторов

Здравствуйте, имеется класс с конструктором в заголовочном файле. Хочу разделить класс на два файла cpp и h. Не могу понять как разделить конструктор на два файла или написать прототип конструктора, который наследуется от базового конструктора.
Код:
class Enemy :public Entity{
public:
	Enemy(Image, String, Level, float, float, int, int) :Entity(image, Name, X, Y, W, H){
		obj = lvl.GetObjects("solid");
		if (name == "EasyEnemy"){
			sprite.setTextureRect(IntRect(0, 0, w, h));
			dx = 0.1;
	}
Ali77777 вне форума Ответить с цитированием
Старый 11.04.2016, 17:11   #2
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,331
По умолчанию

Код:
// SomeClass.h
class SomeClass
{
public:
    SomeClass();
};

// SomeClass.cpp
#include "SomeClass.h"
SomeClass::SomeClass()
{
}
waleri вне форума Ответить с цитированием
Старый 11.04.2016, 17:35   #3
Ali77777
 
Регистрация: 21.06.2012
Сообщений: 3
По умолчанию

А можно подробнее. Допустим существует BaseClass. Хотелось бы понять как записать конструктор someclass, который наследуется от конструктора BaseClass в "h" и "cpp" файлах
Ali77777 вне форума Ответить с цитированием
Старый 11.04.2016, 17:45   #4
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

конструкторы не наследуются.
В h файле пишете только описание конструктора:
Код:
class Enemy :public Entity{
public:
	Enemy(Image, String, Level, float, float, int, int);
в cpp файле: реализацию:
Код:
Enemy::Enemy(Image, String, Level, float, float, int, int) :Entity(image, Name, X, Y, W, H){
		obj = lvl.GetObjects("solid");
		if (name == "EasyEnemy"){
			sprite.setTextureRect(IntRect(0, 0, w, h));
			dx = 0.1;
	}
pu4koff вне форума Ответить с цитированием
Старый 11.04.2016, 18:42   #5
Ali77777
 
Регистрация: 21.06.2012
Сообщений: 3
По умолчанию

Спасибо большое, все сработало.

Последний раз редактировалось Ali77777; 11.04.2016 в 19:07.
Ali77777 вне форума Ответить с цитированием
Старый 11.04.2016, 19:18   #6
Croessmah
Вредный кошак
Участник клуба
 
Аватар для Croessmah
 
Регистрация: 14.10.2012
Сообщений: 1,159
По умолчанию

Цитата:
конструкторы не наследуются.
Код:
struct X
{
    X(int x, int z){}
};


struct Y : X
{
    using X::X;//<-- наследование конструкторов
};



int main()
{
    Y y(10, 8);
}
Такая возможность доступна, начиная с C++11

Последний раз редактировалось Croessmah; 11.04.2016 в 19:20.
Croessmah вне форума Ответить с цитированием
Старый 12.04.2016, 14:50   #7
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

Цитата:
Сообщение от Croessmah Посмотреть сообщение
Такая возможность доступна, начиная с C++11
Не знал. Давно на плюсах ничего не писал, тогда еще такого "сахара" не было.
pu4koff вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
конструкторов отчетов ts-alan C# (си шарп) 3 19.08.2013 13:59
Перегрузка конструкторов Человек_Борща Общие вопросы Delphi 8 12.06.2013 10:15
перегрузка конструкторов wwe2012 Общие вопросы C/C++ 10 28.03.2011 19:49
Перегрузка конструкторов Snowcat Общие вопросы C/C++ 2 11.06.2010 00:05