Зачем делать в базовом классе закрытыми копирующий конструктор и присваивание ?
Пример:
class CBase
{
private:
CBase(const CBase&);
CBase& operator=(const CBase&);
}
Класс CBase является базовым классом для всех класов, которые должны быть созданны на куче (с помощю оператора new).
Вопросики:
1. Зачем делать закрытыми копирующий конструктор и копирующее присваивание?
(Мне кажется, это делается для того, чтобы производные классы не могли
использовать копирующие конструкторы, и для того, чтобы производные
классы не могли использовать оператор присваивания). А что тогда получается, что ни один производный класс не сможет объявить своего копирующего конструктора и оператора присваивания, правильно?
2. Их реализовывать в базовом классе нужно? Или достаточно объявить их закрытыми? И можно оставить их без определения?
==Какой же неблагодарный труд -- работать спеллчекером... Obidos.