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

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

Войти
Регистрация
Восстановить пароль
 
SaShka K
3 / 3 / 0
Регистрация: 16.01.2014
Сообщений: 55
#1

Как построить экземпляр дочернего класса на основе готового экземпляра базового класса? - C++

08.02.2014, 15:58. Просмотров 571. Ответов 5
Метки нет (Все метки)

Если уже есть готовый объект базового класса. Могу я построить экземпляр дочернего на его основе, (напр., получив такой базовый объект параметром в конструкторе)? Или это уже называется иначе, чем "наследование"?

Пробую так сделать, но, единственное, реализация чего приходит в голову - это плодить копию базового объекта, в которую слизывать его поля, а ведь хотел не плодить копию, а достраивать УЖЕ ГОТОВЫЙ базовый объект. Т.е. чтобы базовый объект стал частью дочернего.

PS: я только учусь. Спасибо за терпение.
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.02.2014, 15:58     Как построить экземпляр дочернего класса на основе готового экземпляра базового класса?
Посмотрите здесь:

Создание нового экземпляра дочернего класса из экземпляра базового - C++
Всем привет! Извиняюсь, если вопрос глупый, но что-то не смог найти конкретный ответ на него... У меня есть несколько классов: все они...

Создать экземпляр класса по ссылке экземпляра класса - C++
Есть класс для обработки клиентов // Абстрактный class ClientProcessing { }; Я создаю от него наследника class...

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

Можно ли получить ссылку на экземпляр класса по полю этого экземпляра - C++
схематично код такой - class A { static void staticMethodA(SomeClass* memberA); SomeClass* memberA; } void...

класс наследник на основе базового класса - C++
-----

Как вызвать виртуальную функцию из дочернего класса, если она определена и вызывается в конструкторе РОДИТЕЛЬСКОГО класса? - C++
Ну то есть так: есть родительский и дочерний класс, в родительском определен виртуальная функция и вызывается в его конструкторе (камень...

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

Как сделать членом класса экземпляр этого же класса - C++
class Operation { public: bool type; //true = operation, false = number char Operator; Operation L_Op; Operation R_Op; ...

Поместить в динамически расширяемый массив объекты класса, производные от базового абстрактного класса - C++
Помогите пожалуйста новичку! (мне). Я хочу создать динамически расширяющийся массив указателей на базовый абстрактный класс,...

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

Создать массив указателей базового класса и присвоить ему адреса каждого из екземпляров класса - C++
Всем привет. Есть условие задачи: Дан базовый класс Base у которого есть метод my_name, метод выводит сообщение This is Base class. От...

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


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Tulosba
:)
Эксперт С++
4393 / 3236 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
08.02.2014, 16:03     Как построить экземпляр дочернего класса на основе готового экземпляра базового класса? #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Наследование так не работает, как вы описываете. Если есть объект базового класса, то это уже готовый самостоятельный объект. Он не может быть использован как базовая часть производного класса.
castaway
Эксперт С++
4881 / 3017 / 370
Регистрация: 10.11.2010
Сообщений: 11,076
Записей в блоге: 10
Завершенные тесты: 1
08.02.2014, 16:20     Как построить экземпляр дочернего класса на основе готового экземпляра базового класса? #3
Работа с объектом - прерогатива run-time, формирование объектов - compile-time.
Ответ на вопрос (если он был задан правильно): нет.
zss
Модератор
Эксперт С++
6321 / 5905 / 1913
Регистрация: 18.12.2011
Сообщений: 15,181
Завершенные тесты: 1
08.02.2014, 16:23     Как построить экземпляр дочернего класса на основе готового экземпляра базового класса? #4
Цитата Сообщение от SaShka K Посмотреть сообщение
Могу я построить экземпляр дочернего на его основе
Это делается так
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
class Base
{
public:
int NumberfromBase;
};
class Pr:public Base
{
public:
int NumberFromPr;
};
int main()
{
   Pr XX;
   XX.NumberFromBase=1;// пользуемся всем, что есть в базовом классе
   XX.NumberFromPr=1;// пользуемся тем, что добавили.
}
SaShka K
3 / 3 / 0
Регистрация: 16.01.2014
Сообщений: 55
09.02.2014, 20:06  [ТС]     Как построить экземпляр дочернего класса на основе готового экземпляра базового класса? #5
(к ZSS)
Это мне понятно. Я хотел взять готовый экземпляр базового класса и на нём достроить экземпляр дочернего.
Простите, возможно я не вполне корректно сформулировал вопрос, но это разъяснение во втором абзаце постановки.
zss
Модератор
Эксперт С++
6321 / 5905 / 1913
Регистрация: 18.12.2011
Сообщений: 15,181
Завершенные тесты: 1
09.02.2014, 20:59     Как построить экземпляр дочернего класса на основе готового экземпляра базового класса? #6
Отличий пока не вижу.
Единственный нюанс, если в готовом базовом классе
(который Вы, естественно, изменить не можете)защищенные данные описаны
с типом private, то производный класс не будет иметь к ним доступа.
Yandex
Объявления
09.02.2014, 20:59     Как построить экземпляр дочернего класса на основе готового экземпляра базового класса?
Ответ Создать тему
Опции темы

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