Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2008
    Messaggi
    475

    [C++] Vector come campo di una classe

    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?

    codice:
    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)
    "Let him who has understanding reckon the number of the beast, for it is a human number.
    Its number is rw-rw-rw-."

  2. #2
    Utente di HTML.it L'avatar di KrOW
    Registrato dal
    Feb 2009
    Messaggi
    281
    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)
    codice:
    std::vector<MyClass*> oggetti;
    C++ 4ever
    496e2062696e6172696f206e6f6e2063692061767265737469 206e656d6d656e6f2020726f7661746f203a29

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2008
    Messaggi
    475
    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!
    "Let him who has understanding reckon the number of the beast, for it is a human number.
    Its number is rw-rw-rw-."

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.