Visualizzazione dei risultati da 1 a 2 su 2

Discussione: [C++] Costruttori

  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2014
    Messaggi
    55

    [C++] Costruttori

    Qual'è la differenza tra queste due scritture?

    [CODE] Prova::Prova (string a, string b):
    nome(a), cognome (b) {;}

    e

    Prova::Prova (string a, string b){
    nome=a;
    cognome=b;
    }
    [\CODE]
    Quale delle due è preferibile?

  2. #2
    Ciao, il primo caso utilizzi una lista di inizializzazione. Non mi ricordo precisamente, magari aspetta qualche risposta più approfondita, ma intanto:

    La lista di inizializzazione, inizializza appunto, i membri prima della chiamata del corpo della funzione, sono utili per esempio per definire variabili costanti, e poi per cose più compelsse tipo i moduli. Magari sbaglio ma dovresti poter fare:

    class TuaClasse{
    .
    .
    .
    const int a;
    .
    .
    public:
    .
    .
    TuaClasse(int c);
    .
    .
    };

    TuaClasse::TuaClasse(int c) : a(c) {.......};
    edit:

    Ho anche provato ed effettivamente se provi ad inizializzare c all'interno del corpo da errore facendolo nella lista invece puoi.
    Ultima modifica di Onizuka8; 16-01-2015 a 21:38

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.