Articles of const

Cosa significa const seguendo una firma di funzione / metodo?

Secondo MSDN: “Quando si segue l’elenco dei parametri di una funzione membro, la parola chiave const specifica che la funzione non modifica l’object per il quale è stata richiamata.” Qualcuno potrebbe chiarirlo un po ‘? Significa che la funzione non può modificare nessuno dei membri dell’object? bool AnalogClockPlugin::isInitialized() const { return initialized; }

quando usare const e const reference in function args

Quando si scrive una funzione C ++ che ha argomenti che vengono passati ad esso, dalla mia comprensione const dovrebbe sempre essere usato se si può garantire che l’object non verrà modificato o un puntatore const se il puntatore non verrà modificato. Quando si consiglia questa pratica? Quando useresti un riferimento const e quali sono […]

A che servono i puntatori const (al contrario dei puntatori agli oggetti const)?

Ho spesso usato puntatori a oggetti const, come così … const int *p; Ciò significa semplicemente che non è ansible modificare il numero intero che p indica verso p . Ma ho anche visto riferimenti a puntatori const, dichiarati in questo modo … int* const p; A quanto ho capito, ciò significa che la variabile […]

Qual è la differenza tra const_iterator e non-const iterator nel C ++ STL?

Qual è la differenza tra un const_iterator e un iterator e dove utilizzeresti l’uno sull’altro?

Variabile Const modificata con il puntatore in C

La variabile i è dichiarata const, ma sono comunque in grado di cambiare il valore con un puntatore alla posizione di memoria. Come è ansible? int main() { const int i = 11; int *ip = &i; *ip=100; printf(“%d\n”,*ip); printf(“%d\n”,i); } Quando compilo, ottengo questo avviso: test.c: In function ‘main’: test.c:11: warning: initialization discards qualifiers […]

Stessa funzione con const e without – When and why?

T& f() { // some code … } const T& f() const { // some code … } L’ho visto un paio di volte adesso (nel libro introduttivo che ho studiato fino ad ora). So che il primo const rende il valore di ritorno const, in altre parole: non modificabile. Il secondo const permette che […]

Confusione relativa alla modifica della variabile const mediante puntatori

L’esempio seguente ha aggiunto confusione nella mia comprensione. Non riesco a capire come sia ansible modificare la variabile const locale. Per favore aiutami a capire lo stesso. /* Compile code without optimization option */ // volatile.c #include int main(void) { const int local = 10; int *ptr = (int*) &local; printf(“Initial value of local : […]

In che modo la durata di un valore di ritorno è estesa all’ambito della funzione chiamante quando è associata a un riferimento const nella funzione chiamante?

“Se restituisci un valore (non un riferimento) dalla funzione, quindi associalo a un riferimento const nella funzione chiamante, la sua durata verrà estesa all’ambito della funzione chiamante.” Quindi: CASO A const BoundingBox Player::GetBoundingBox(void) { return BoundingBox( &GetBoundingSphere() ); } Restituisce un valore di tipo const BoundingBox dalla funzione GetBoundingBox() variante I: (associamola a un riferimento […]

Trasmetti il ​​vettore al vettore

Ho una variabile membro di tipo vector (dove T è una class personalizzata, ma potrebbe anche essere int.) Ho una funzione da cui voglio restituire un puntatore a questo vettore, ma non lo faccio vuoi che il chiamante sia in grado di cambiare il vettore o i suoi elementi. Quindi voglio che il tipo restituito […]

Posso usare const nei vettori per consentire l’aggiunta di elementi, ma non le modifiche al già aggiunto?

I miei commenti su questa risposta mi hanno fatto riflettere sui problemi di costanza e smistamento. Ho giocato un po ‘e ho ridotto i miei problemi al fatto che questo codice: #include int main() { std::vector v; } non verrà compilato – non è ansible creare un vettore di const. Ovviamente, avrei dovuto saperlo (e […]