Cos'è uno Struct in C ++?
Una STRUCT è una struttura dati C ++ che può essere utilizzata per memorizzare insieme elementi di diversi tipi di dati. In C ++, una struttura è un tipo di dati definito dall'utente. La struttura crea un tipo di dati per raggruppare elementi di diversi tipi di dati in un unico tipo di dati.
Per esempio:
Supponi di dover memorizzare informazioni su qualcuno, il suo nome, cittadinanza ed età. Puoi creare variabili come nome, cittadinanza ed età per memorizzare i dati separatamente.
Tuttavia, potrebbe essere necessario memorizzare informazioni su molte persone in futuro. Significa che verranno create variabili per individui diversi. Ad esempio, nome1, cittadinanza1, età1 ecc. Per evitare ciò, è meglio creare una struttura.
In questo tutorial C ++ imparerai:
- Cos'è uno Struct in C ++?
- Quando utilizzare una struttura?
- Inizializzazione strutturale C ++
- Creazione di istanze di strutture
- Accesso ai membri Struct
- Puntatori alla struttura
- Struct come argomento della funzione
- Limitazione di una struttura C ++
Quando utilizzare una struttura?
Ecco alcuni motivi per utilizzare la struttura in C ++.
- Utilizzare una struttura quando è necessario memorizzare elementi di diversi tipi di dati in un tipo di dati.
- Gli struct C ++ sono un tipo di valore piuttosto che un tipo di riferimento. Usa una struttura se non intendi modificare i tuoi dati dopo la creazione.
Inizializzazione strutturale C ++
Per creare una struttura C ++, usiamo la parola chiave struct, seguita da un identificatore. L'identificatore diventa il nome della struttura. Ecco la sintassi per la creazione di una struttura C ++:
Sintassi:
struct struct_name{// struct members}
Nella sintassi precedente, abbiamo usato la parola chiave struct. Il nome_struttura è il nome della struttura.
I membri della struttura vengono aggiunti all'interno di parentesi graffe. Questi membri probabilmente appartengono a diversi tipi di dati.
Per esempio:
struct Person{char name[30];int citizenship;int age;}
Nell'esempio precedente, Person è una struttura con tre membri. I membri includono nome, cittadinanza ed età. Un membro è del tipo di dati char, mentre i restanti 2 sono numeri interi quando viene creata una struttura, la memoria non viene allocata. La memoria viene allocata solo dopo che una variabile viene aggiunta alla struttura.
Creazione di istanze di strutture
Nell'esempio sopra, abbiamo creato una struttura chiamata Person. Possiamo creare una variabile struct come segue:
Person p;
La p è una variabile struct di tipo Person. Possiamo usare questa variabile per accedere ai membri della struttura.
Accesso ai membri Struct
Per accedere ai membri della struttura, usiamo l'istanza della struttura e l'operatore punto (.). Ad esempio, per accedere all'età membro di struct Person:
p.age = 27;
Abbiamo avuto accesso all'età dei membri di struct Person usando l'istanza di struct, p. Abbiamo quindi impostato il valore dell'età dei membri su 27.
Esempio 1:
#includeusing namespace std;struct Person{int citizenship;int age;};int main(void) {struct Person p;p.citizenship = 1;p.age = 27;cout << "Person citizenship: " << p.citizenship << endl;cout << "Person age: " << p.age << endl;return 0;}
Produzione:
Ecco uno screenshot del codice:
Spiegazione del codice:
- Includere il file di intestazione iostream nel nostro programma per utilizzare le funzioni in esso definite.
- Includere lo spazio dei nomi std per utilizzare le sue classi senza chiamarlo.
- Crea una struttura chiamata Person.
- L'inizio del corpo della struttura.
- Creare un membro della struttura denominato cittadinanza di tipo intero.
- Crea un membro struct denominato age di tipo integer.
- Fine del corpo della struttura.
- Chiama la funzione main (). La logica del programma dovrebbe essere aggiunta all'interno del corpo di questa funzione.
- Crea un'istanza della struttura Person e assegnandole il nome p.
- Imposta il valore della cittadinanza membro della struttura su 1.
- Imposta il valore dell'età del membro della struttura su 27.
- Stampa il valore della cittadinanza membro della struttura sulla console insieme ad un altro testo.
- Stampa il valore dell'età del membro della struttura sulla console insieme ad altro testo.
- Il programma dovrebbe restituire un valore se viene eseguito correttamente.
- Fine della funzione main ().
Puntatori alla struttura
È possibile creare un puntatore che punti a una struttura. È simile al modo in cui vengono creati i puntatori che puntano a tipi di dati nativi come int, float, double, ecc. Notare che un puntatore in C ++ memorizzerà una posizione di memoria.
Esempio 2:
#includeusing namespace std;struct Length{int meters;float centimeters;};int main(){Length *ptr, l;ptr = &l;cout << "Enter meters: ";cin >> (*ptr).meters;cout << "Enter centimeters: ";cin >> (*ptr).centimeters;cout << "Length = " << (*ptr).meters << " meters " << (*ptr).centimeters << " centimeters";return 0;}
Produzione:
Ecco uno screenshot del codice:
Spiegazione del codice:
- Includere il file di intestazione iostream nel nostro programma per poter utilizzare le sue funzioni.
- Includere lo spazio dei nomi std nel nostro programma per utilizzare le sue classi senza chiamarlo.
- Crea una struttura chiamata Length.
- Inizio del corpo della struttura Length.
- Creare un membro della struttura denominato metri di tipo di dati intero.
- Crea un membro struct denominato centimetri di tipo integer.
- Fine del corpo della struttura Length.
- Chiama la funzione main ().
- Inizio del corpo della funzione main ().
- Crea una variabile puntatore * ptr e una variabile normale l di tipo Lunghezza.
- Memorizza l'indirizzo della variabile l nella nostra variabile pointer.
- Visualizza un messaggio sulla console, chiedendo all'utente di inserire il valore per i contatori variabili.
- Leggere il valore inserito dall'utente tramite la tastiera. È possibile accedere ai misuratori della funzione membro utilizzando la variabile pointer.
- Visualizza un messaggio sulla console, chiedendo all'utente di inserire il valore per i centimetri variabili.
- Leggere il valore inserito dall'utente tramite la tastiera. Qui si accede ai centimetri della funzione membro utilizzando la variabile pointer.
- Visualizza i valori letti dall'utente sulla console insieme ad altro testo.
- Il programma deve restituire un valore in caso di corretta esecuzione.
- Fine del corpo della funzione main ().
Struct come argomento della funzione
Puoi passare una struttura a una funzione come argomento. Questo viene fatto allo stesso modo del passaggio di un normale argomento. Le variabili struct possono anche essere passate a una funzione. Un buon esempio è quando è necessario visualizzare i valori dei membri della struttura. Dimostriamo questo:
Esempio 3:
#includeusing namespace std;struct Person{int citizenship;int age;};void func(struct Person p);int main(){struct Person p;p.citizenship = 1;p.age = 27;func(p);return 0;}void func(struct Person p){cout << " Person citizenship: " << p.citizenship< Produzione:
Ecco uno screenshot del codice:
Spiegazione del codice:
- Includere il file di intestazione iostream nel nostro file. Useremo quindi le sue funzioni senza ottenere errori.
- Includere lo spazio dei nomi std nel nostro programma per utilizzare le sue classi. Non avremo bisogno di chiamare lo spazio dei nomi per usare le sue classi.
- Crea una struttura chiamata Person.
- Inizio del corpo della struttura Persona.
- Crea un membro di struct Person. Il membro è denominato cittadinanza ed è di tipo intero.
- Crea un membro di struct Person. Il membro è denominato age ed è di tipo integer.
- Fine del corpo di struct Person.
- Crea una funzione che prenda l'istanza di struct Person, p, come argomento.
- Chiama la funzione principale. La {segna l'inizio del corpo della funzione main ().
- Crea un'istanza di struct Person e assegnandole il nome p.
- Accedere alla cittadinanza variabile membro della struttura utilizzando l'istanza della struttura, p e assegnandole il valore 1.
- Accedere alla variabile membro della struttura age utilizzando l'istanza della struttura, p e assegnandole il valore 27.
- Chiama la funzione e passa ad essa l'istanza della struttura Person, p, come argomento.
- La funzione deve restituire un valore in caso di corretta esecuzione.
- Fine del corpo della funzione main ().
- Crea il corpo della funzione.
- L'inizio del corpo della funzione.
- Accedi al valore di cittadinanza membro della struttura e stampalo sulla console insieme ad altro testo.
- Accedi al valore dell'età del membro della struttura e stampalo sulla console insieme ad altro testo.
- Fine del corpo della funzione.
Limitazione di una struttura C ++
I seguenti sono i limiti delle strutture:
- Il tipo di dati struct non può essere trattato come i tipi di dati incorporati.
- Operatori come + - e altri non possono essere utilizzati sulle variabili di struttura.
- Le strutture non supportano l'occultamento dei dati. È possibile accedere ai membri di una struttura da qualsiasi funzione indipendentemente dal suo ambito.
- I membri statici non possono essere dichiarati all'interno del corpo della struttura.
- I costruttori non possono essere creati all'interno di una struttura.
Sommario:
- Una struttura è una struttura dati che memorizza elementi dati appartenenti a tipi diversi.
- Mentre un array memorizza elementi di dati di un tipo simile, uno struct archivia elementi di dati di tipi diversi.
- Una struttura dovrebbe essere utilizzata quando non ci si aspetta che gli elementi di dati cambino valore.
- Ai membri di una struttura si accede utilizzando l'operatore punto (.).
- Dobbiamo creare un'istanza della struttura.
- Per creare una struttura C ++, usiamo la parola chiave struct.
- I puntatori che puntano a una struttura vengono creati in modo simile a come vengono creati i puntatori che puntano a tipi regolari.
- Una struttura può essere passata come argomento a una funzione nello stesso modo in cui vengono passate le funzioni ordinarie.