Sto provando a creare una pura classe base virtuale (o simulato puro virtuale)
il mio obiettivo:
- L'utente non può creare istanze di BaseClass.
- Le classi derivate devono implementare il costruttore predefinito, il costruttore di copia, l'operatore di assegnazione delle copie e il distruttore.
Il mio tentativo:
class Base
{
public:
virtual ~Base() {};
/* some pure virtual functions */
private:
Base() = default;
Base(const Base& base) = default;
Base& operator=(const Base& base) = default;
}
Questo dà alcuni errori lamentando che (per uno) il costruttore di copie è privato. Ma non voglio che venga chiamato questo costruttore imitato.
Qualcuno può darmi la costruzione corretta per farlo se questo è possibile?