PDA

Visualizza la versione completa : [C++] Vector come campo di una classe


Ippo343
10-10-2009, 04:16
Ciao...

come faccio a dichiarare un vector come campo di una classe? Ovviamente non posso inizializzarlo, quindi non devo dichiarare un vector ma un puntatore ad un vector e poi inizializzarlo nel costruttore, giusto?



class A
{
private:

vector<MyClass*>* oggetti;
};


Una cosa del genere immagino. Eppure proprio sulla dichiarazione del vector*, mi arriva un simpaticissimo "ISO C++ forbids declaration of 'vector' with no type", il che mi lascia molto perplesso, perchè l'header <vector> l'ho incluso...

Cosa sto sbagliando? :master:

(Code::Blocks su ubuntu 9.04)

KrOW
10-10-2009, 05:14
Ciao . . . Guarda che la classe vector ha un costruttore di default, quindi non c'è bisogno di dichiarare "oggetti" come puntatore a vector. Per quanto riguarda il messaggio d' errore, devi utilizzare il risolutore di scope sull' oggetto "oggetti" (non dimenticare che vector appartiene al namespace std)

std::vector<MyClass*> oggetti;

Ippo343
10-10-2009, 13:51
Uhm... funziona, hai ragione. Ora devo riguardarmi un po' come funzionano i campi in c++, pare che mi sfugga qualcosa... come non si possono inizializzare le variabili, ero convinto che non si potesse fare nemmeno per gli oggetti e quindi bisognasse mettere un puntatore e poi crearlo nel costruttore ^^

Grazie mille ciao!

Loading