PDA

Visualizza la versione completa : [C++] Dubbio costruttori


FinalFantasy
04-11-2005, 23:37
Ho una classe con un costruttore, se faccio



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?

XWolverineX
05-11-2005, 00:04
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);)

FinalFantasy
05-11-2005, 17:35
up

oregon
05-11-2005, 18:08
Ma vuoi sapere se si possono avere piu' costruttori o correggere l'errore?

Qual e' la definizione della classe?

FinalFantasy
05-11-2005, 20:33
Supponendo che ho questa classe

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?

oregon
05-11-2005, 20:51
Cosi' chiedi nel main di usare il costruttore senza parametri senza averlo definito. Lo devi fare.



class classeA
{
private:
int a;
public:
classeA();
classeA(int);
};

classeA::classeA() { }
classeA::classeA(int arg) : a(arg) { }

int main()
{
classeA a[10];
return 0;
}

oregon
05-11-2005, 20:53
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

FinalFantasy
05-11-2005, 21:17
voglio creare un array di oggetti, no passare 10 come intero...

oregon
05-11-2005, 21:20
Ok ... ok ... allora vale la mia prima risposta ...

Loading