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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 08.12.2018, 18:23   #1
GrandmaSquid3
 
Регистрация: 08.12.2018
Сообщений: 6
Вопрос Создание экземпляра подходящего класса

Тема поста звучит немного странно, но я не смог сформулировать лучше.

Я получаю массив данных "универсального" класса (CUniversal). Универсальность этого класса заключается в том, что он содержит кучу полей (на все случаи жизни), в нем может храниться информация хоть о человеке (ФИО, дату рождения и т.п.), хоть об автомобиле (марка автомобиля, год выпуска и т.п.). С таким классом очень не удобно работать, я задумался о его декомпозиции в конкретные классы:

CBase - базовый класс содержащий методы и свойства, которые будут и всех его потомков (напр. id)
--> CPeople : CBase - содержит общую для всех людей (напр. ФИО и дата рождения)
-----> CAdult : CPeople - содержит информацию врослых людей (напр. семейное положение и место работы)
-----> ССhild : CPeople - содержит информацию о детях (напр. место учебы)
--> CVehicle : CBase - содержит общую информацию о средстве передвижения (напр. цвет)
-----> ССar : CVehicle - ...
-----> СBike : CVehicle - ...

Вроде хорошо вышло отделить плевелы от зерен, можно использовать все прелести ООП. Но как грамотно реализовать создание этих объектов?

Меня настораживает то, что все мои классы в конструкторе принимают экземпляр "универсального" класса CUniversal. То есть можно написать ССar(instanceCUniversal), но instanceCUniversal может содержать данные не о машине, а о человеке, и тогда все нужны поля заполнятся нулями либо пустыми строками. Хотелось бы иметь метод принимающий экземпляр CUniversal и возвращающий корректный экземпляр моего класса, но где и как его реализовать? Возможно решение лежит совсем в другом направлении?
GrandmaSquid3 вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Повторение метода экземпляра класса polin11 JavaScript, Ajax 1 21.12.2016 11:32
Вызов конструктора производного класса для экземпляра базового класса max_prorok Помощь студентам 5 09.09.2015 09:39
Создание экземпляра класса по имени Lasor Общие вопросы C/C++ 24 17.12.2012 22:28
Создание экземпляра класса biohazard120 Общие вопросы Delphi 11 15.09.2012 13:23
удаление экземпляра класса Juffin Общие вопросы Delphi 5 02.11.2010 11:57