Копировальный конструктор, глубокая копия, постоянная ссылкаКопировальный конструктор, глубокая копия, константа Ссылка
Q. Что касается управления памятью.
Конструктор копирования для класса A имеет вид A (const A & a) Почему параметр передается по ссылке? Объясните, почему мы не можем определить конструктор формы A (A a)
Ответ. Три причины, почему мы делаем так:
- Постоянная ссылка при передаче объекта в качестве параметра является более эффективным
- Если мы проходим А (А а) без сопзЬ модификатора объект, который не должен быть изменен мог возможно быть изменена по ошибке
- мы так, чтобы мы могли сделать глубокую копию
Эти три причины являются правильными?
Пожалуйста, дайте мне знать. Спасибо,
Ум, как насчет этого: 'MyClass obj (MyClass());' –
Ваша вторая причина: "A (A a)" без модификатора const ": посмотрите еще раз. Модификатор 'const' был не единственным, что вы лишили этого. – WhozCraig