Membri static

di il
2 risposte

Membri static

Salve, avrei una domanda piuttosto "banale" riguardante i membri statici di classe: nei metodi posso utilizzare questi membri direttamente (facendo this->statico, supponendo che statico sia un attributo static) o devo utilizzare un metodo di get?
provando il codice funziona in entrambi i modi senza alcun errore nè in compilazione nè in esecuzione. mi è stato detto che è preferibile utilizzare un get per quanto riguarda un attributo statico, è vero? sinceramente a me scoccia dover fare un get SE questo è inutile: se il valore statico lo utilizzo solo nelle funzioni membro di classe a che pro fare un get, mi chiedo?
però boh... forse fa parte di quelle "norme generali per scrivere un codice corretto"...

2 Risposte

  • Re: Membri static

    A mio avviso l'implementazione del metodo Get (ed eventuale relativo Set) ha senso per quei membri che devono essere accessibili dall'"esterno" (anche da classi derivate), indipendentemente dal fatto che siano static oppure no. E' una "pratica di buona programmazione" in quanto ti permette, ad esempio, di modificare il tipo di dato del membro (come passare da int a float) senza dover modificare il resto del codice (potrei gestire le trasformazioni da int a float e viceversa internamente alla Get/Set).
    Implementare Set/Get per membri che non sono accessibili dall'"esterno" (e da classi derivate) potrebbe essere solo un appesantimento... ma questo dipende fortemente dalla classe e dal progetto su cui stai lavorando!
  • Re: Membri static

    Mmmh.. capisco.
    quest'anno (4° superiore) abbiamo iniziato la programmazione a oggetti e per esercitarci inizialmente ci hanno fatto fare sempre i get e i set di qualunque attributo, oppure altre cose superflue, come costruttore con parametri o costruttore copia, anche se i metodi di classe non richiedevano l'utilizzo di queste funzioni particolari, era insomma tutto per esercitarci.
    diverso però è per il discorso dei get/set per gli attributi statici, in quanto ci hanno detto che anche se l'attributo non dev'essere visibile dall'esterno, è comunque bene utilizzare un get/set per modificare/ottenere il valore di un attributo statico, anziché richiamarlo direttamente.
    grazie per la tua risposta comunque. era una sorta di "sondaggio" per vedere se fare questi get/set static anche se l'attributo non dev'essere visibile all'esterno era realmente una cosa che si fa...
Devi accedere o registrarti per scrivere nel forum
2 risposte