Normalmente, una classe C ++ viene scritta con public:
e private:
che si applicano a una serie di membri:
class Foo {
private:
int x;
int y;
int z;
public:
int getX();
int setY(int val);
void print();
}
Uno stile di codifica alternativo è quello di prefisso esplicitamente ogni membro con public
/ private
. Questa è una buona o cattiva idea in C ++? Ecco l'esempio precedente modificato in questo modo:
class Foo {
private: int x;
private: int y;
private: int z;
public: int getX();
public: int setY(int val);
public: void print();
}
Non sono riuscito a trovare opinioni o consigli su questo argomento effettuando ricerche sul Web, Software Engineering SE o Stack Overflow. Ecco il mio brainstorming:
Vantaggi del primo modo tradizionale:
- È lo stile idiomatico durante la lettura e la scrittura del codice C ++.
- Riduce la ridondanza quando un grande gruppo di membri è pubblico o privato.
Vantaggi del secondo, modo esplicito:
- La designazione
public
/private
è immediatamente visibile nel punto in cui ogni membro è dichiarato. Non è necessario eseguire la scansione verso l'alto di una quantità potenzialmente grande di codice per trovare il modificatore di visibilità più recente. - Quando si riordina l'ordine dei membri, questa tecnica riduce il rumore nelle diff e elimina la possibilità di spostare accidentalmente una variabile pubblica in una sezione privata o viceversa. (Tuttavia, è discutibile che questi problemi siano comuni o non comuni nello stile tradizionale).
- È lo stile obbligatorio in linguaggi strettamente correlati come Java e C #.