2010-03-30 14 views
38

Qualcuno può darmi un esempio su come definire un nuovo tipo di struttura in una classe in C++. Grazie.definisce una struttura all'interno di una classe in C++

+10

Si noti inoltre che la stessa tecnica della risposta più aperta può essere utilizzata per definire una classe all'interno di una classe, una struct all'interno di una struct e una classe all'interno di una struct. class e struct sono solo diversi per la visibilità predefinita dei loro membri (privati ​​e pubblici, rispettivamente). –

+4

... e il tipo di ereditarietà predefinito (privato e pubblico, rispettivamente). –

risposta

62

Qualcosa di simile a questo:

class Class { 
    // visibility will default to private unless you specify it 
    struct Struct { 
     //specify members here; 
    }; 
}; 
5

Qualcosa di simile:

class Tree { 

struct node { 
    int data; 
    node *llink; 
    node *rlink; 
}; 
..... 
..... 
..... 
}; 
+0

sto provando a fare lo stesso genere di cose (creando) albero di huffman. Ho dubbi sul fatto che come creerai l'oggetto del nodo e come lo avrai reso accessibile nella funzione principale? – user3206225

41

classe dichiarare & struct nidificato probabilmente in qualche file di intestazione

class C { 
    // struct will be private without `public:` keyword 
    struct S { 
     // members will be public without `private:` keyword 
     int sa; 
     void func(); 
    }; 
    void func(S s); 
}; 

se si vuole separare l'implementazione/definizione, forse in alcuni file CPP

void C::func(S s) { 
    // implementation here 
} 
void C::S::func() { // <= note that you need the `full path` to the function 
    // implementation here 
} 

se si desidera allineare l'implementazione, altre risposte andranno bene.

+0

Quindi ho una struttura con tre variabili all'interno e sono riuscito a compilare il mio codice con la parola chiave 'private:' all'interno. Quindi quali sono i limiti di quella struttura che è "privata"? La classe in cui è definita la struttura può accedere a una di queste variabili? Ho assolutamente bisogno di indicatori di funzione pubblica per derefare le funzioni all'interno della classe principale? Fondamentalmente quello che ho è un vettore di casi di test rappresentati dalla struttura. – JoeManiaci

+0

"percorso completo" mi ha appena salvato la vita! – yano

Problemi correlati