const variabile all'interno di un'interfaccia c ++

1

Posso avere una variabile const in un'interfaccia c ++? È valido come parte del buon design? (Non scrivere la sintassi ma secondo le buone pratiche).

Ad esempio, se voglio un'interfaccia di classe "modellabile" implementata dai modelli e ho una variabile isModel nell'interfaccia che verrà impostata su TRUE quando viene eseguita l'istanziazione della classe del modello.

Quindi, posso rendere isModel un const bool. Non è vero?

    
posta DevBee 18.09.2016 - 18:54
fonte

1 risposta

2

Un'interfaccia in C ++ può essere definita con l'aiuto di una classe astratta. Quindi, se la domanda è se puoi avere una variabile membro costante, puoi farlo. Tuttavia, una variabile membro costante non può essere modificata durante l'esecuzione del programma. Puoi farlo con l'aiuto di un flag configurabile fornito nell'interfaccia.

Consiglio vivamente contro quanto sopra per 2 motivi:

1) Le interfacce dovrebbero normalmente avere funzioni membro. Un'interfaccia è una raccolta di metodi astratti. La funzionalità principale di un'interfaccia è di fungere da ponte tra l'utente e la funzionalità interna. Questa interfaccia dovrebbe rimanere più o meno costante durante tutto il ciclo di vita del prodotto. Pertanto, avere un bool costante non ha senso da un punto di vista OOP.

2) Se si desidera inizializzare un oggetto, un costruttore è il modo migliore per assicurarsi che ciò accada. Pertanto, l'inizializzazione dipende dall'istanza dell'oggetto nel prodotto e non è necessario scrivere funzioni di supporto per farlo.

    
risposta data 19.09.2016 - 22:04
fonte

Leggi altre domande sui tag