Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente bannato
    Registrato dal
    Jun 2003
    Messaggi
    3,657

    [C++] Dubbio costruttori

    Ho una classe con un costruttore, se faccio

    codice:
    classe a[10];
    mi da errore xke devo passare i parametri del costruttore, nn c'è soluzione a ciò?

    In alucni esercizi ci sta scritto che per ogni classe bisogna mettere la lista dei metodi e dei costruttori, perché DEI COSTRUTTORI? si possono mettere + costruttori?

  2. #2
    Utente di HTML.it L'avatar di XWolverineX
    Registrato dal
    Aug 2005
    residenza
    Prague
    Messaggi
    2,563
    Si che puoi avere due costruttori, con l'overloading delle funzioni.

    In un cronometro che uso mi sono fatto due costruttori.
    Uno che non ha parametri e inizializza soltanto il cronometro.
    Uno invece che prende 2 parametro: il tempo da cui iniziare a contare e se voglio che il cronometro parta alla sua stessa inizializzazione o no (con una variabile booleana) (se per esempio voglio far iniziare da 20 minuti, senza che questo venga avviato faccio CRONOMETRO Crono("00.20.00",false)

  3. #3
    Utente bannato
    Registrato dal
    Jun 2003
    Messaggi
    3,657
    up

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Ma vuoi sapere se si possono avere piu' costruttori o correggere l'errore?

    Qual e' la definizione della classe?

  5. #5
    Utente bannato
    Registrato dal
    Jun 2003
    Messaggi
    3,657
    Supponendo che ho questa classe
    codice:
    class classeA
    {
      private:
              int a;
      public:
              classeA(int);
    }
    
    classeA::classeA(int arg) :  a(arg) { }
    
    int main()
    {
      classeA a[10];
      return 0]
    }
    facendo ciò, mi da errore nella prima riga del mai, perché non passo i parametri del costruttore. Io dico: com è possibile fare un array di oggetti e utilizzando il costruttore in un secondo momento x ogni elemento dell'array?

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Cosi' chiedi nel main di usare il costruttore senza parametri senza averlo definito. Lo devi fare.

    codice:
    class classeA
    {
      private:
              int a;
      public:
              classeA();
              classeA(int);
    };
    
    classeA::classeA() { }
    classeA::classeA(int arg) :  a(arg) { }
    
    int main()
    {
      classeA a[10];
      return 0;
    }

  7. #7
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Oddio ... un dubbio ...

    Ma tu stai creando un vettore di 10 oggetti di classeA o vuoi creare un oggetto passando il valore 10 come argomento al costruttore che hai definito?

    Perche' in quest'ultimo caso devi scrivere

    classeA a(10);


    con le parentesi tonde

  8. #8
    Utente bannato
    Registrato dal
    Jun 2003
    Messaggi
    3,657
    voglio creare un array di oggetti, no passare 10 come intero...

  9. #9
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Ok ... ok ... allora vale la mia prima risposta ...

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 © 2025 vBulletin Solutions, Inc. All rights reserved.