Esempio

class MyClass {
public:
MyClass(); // costruttore predefinito
~MyClass(); // distruttore
private:
MyClass& operator=(const MyClass& other);// operatore di assegnazione

protected:
MyClass(const MyClass& other);    // costruttore di copia
};


Soluzione
Definire sempre le sezioni della classe nel seguente ordine: pubblico, protetto e privato.

class MyClass {
public:
MyClass(); // costruttore predefinito
~MyClass(); // distruttore
protected:
MyClass(const MyClass& other);    // costruttore di copia
private:
MyClass& operator=(const MyClass& other);// operatore di assegnazione
};