LINUX.ORG.RU

Индивидуальный вопрос по практике C++

 


0

1

Вопрос исключительно к тем кто имеет длительную практику программирования на С++. Мне не приходилось писать серьезных проектов на С++, тут я новичок. И вопрос следующий, существует класс А, и существует класс Б, класс Б имеет в качестве члена объект класса А. Нормально ли до инициализации объекта класса Б, самостоятельно, не в коде класса Б, создать объект класса А и передать его (адрес) на «усыновление» создающемуся объекту класса Б, который в дальнейшем будет ответственен за уничтожение переданного объекта класса А? Благодарен.

П.С. Может быть существует более лучший вариант инициализации объекта класса А внутри объекта класса Б?

★★★

В целом, да, нормально. Больше при таком объеме информации ничего не скажешь.

Begemoth ★★★★★
()

существует более лучший вариант инициализации объекта класса А внутри объекта класса Б?

В конструкторе класса Б. Никто не мешает инциализировать класс A отдельно. Можно перегрузить конструктор, вторым с параметром объекта А.

robot12 ★★★★★
()
Ответ на: комментарий от robot12

В конструкторе класса Б.

В моем случае класс А это интерфейс, а реальные объекты неизвестны на стадии компиляции.

normann ★★★
() автор топика

Вполне. В разрезе библиотек, предоставляемых проектом clang, подобное очень часто встречается.

Например - http://clang.llvm.org/doxygen/classclang_1_1CompilerInstance.html
Ряд членов (Diagnostics Engine, Target info, File Manager, etc) могут создаваться отдельно от класса и передаваться ему с помощью соответствующих методов.

mkam
()
Ответ на: комментарий от normann

В моем случае класс А это интерфейс

обычно интерфейсы - это абстрактные классы. и создать представитель абстрактного класса невозможно. можно создать только некий класс, реализующий интерфейс, и передать его указатель, как указатель на интерфейс.

Iron_Bug ★★★★★
()
Ответ на: комментарий от Gvidon

предпочитаю «инжектить» ровно одну сущность на все аналогичные потребности :) обобщение, так сказать

anonymous
()

Всем большое спасибо, тему уяснил. А то смотрю тут набижали уже.

normann ★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.