В этом случае сам объект является приватным членом. (Кстати, называя эту сущность объектом, я пишу с точки зрения терминологии?)
Да, вы можете сказать «объект» или «экземпляр» класса.
Вы также можете говорить о включении элемента данных «по значению» вместо «по указателю» (потому что «по указателю» и «по значению» - это обычный способ говорить о передаче параметров, поэтому я ожидаю, что люди поймут эти условия, применяемые к членам данных).
Есть ли какие-нибудь "правила", чтобы решить, какой из них использовать? Я что-то пропустил?
Если экземпляр совместно используется несколькими контейнерами, то каждый контейнер должен включать его по указателю вместо значения; например, если у сотрудника есть экземпляр Boss, включите указатель Boss по указателю, если несколько экземпляров Employee совместно используют одного и того же Босса.
Если время жизни элемента данных не совпадает с временем жизни контейнера, то включите его по указателю: например, если экземпляр данных создается после контейнера, или уничтожается перед контейнером, или уничтожается, и воссоздан в течение срока службы контейнера или если для элемента данных имеет смысл быть нулевым.
В другой раз, когда вы должны включить указатель (или ссылку) вместо значения, это когда тип элемента данных является абстрактным базовым классом.
Еще одна причина для включения по указателю заключается в том, что это может позволить вам изменить реализацию элемента данных без перекомпиляции контейнера. Например, если Car и Carburetor были определены в двух разных DLL, возможно, вы захотите включить Carburetor по указателю: потому что тогда вы сможете изменить реализацию Carburetor, установив другой Carburetor.dll
, не перестраивая Car.dll
.