В дополнение ко всем приведенным выше ответам рассмотрите конструкторы специальных копий, операторы присваивания и все другие функции, которые вы должны написать для класса, которые работают с другими экземплярами . Вам понадобятся функции доступа для всех этих элементов данных.