Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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

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

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

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

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

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

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

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

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


15:54.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru