C++ Struttura con l'esempio

Cos'è una struttura in C++?

A STRUTTURA è un C++ struttura dati 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:

Supponiamo che tu debba archiviare informazioni su qualcuno, il suo nome, cittadinanza ed età. Puoi creare variabili come nome, cittadinanza ed età per archiviare i dati separatamente.

Tuttavia, in futuro potrebbe essere necessario memorizzare informazioni su molte persone. Ciò significa che verranno create variabili per individui diversi. Ad esempio nome1, cittadinanza1, età1 ecc. Per evitare ciò, è meglio creare una struttura.

Quando utilizzare una struttura?

Ecco alcuni motivi per utilizzare la struttura in C++.

  • Utilizzare una struttura quando è necessario archiviare elementi di tipi di dati diversi in un unico tipo di dati.
  • C++ le strutture sono un tipo di valore anziché un tipo di riferimento. Utilizza una struttura se non intendi modificare i dati dopo la creazione.

C++ Inizializzazione della struttura

Per creare un C++ struttura, utilizziamo la parola chiave struct, seguita da un identificatore. L'identificatore diventa il nome della struttura. Ecco la sintassi per la creazione di a C++ struttura:

Sintassi:

struct struct_name  
{  
     // struct members
}   

Nella sintassi precedente, abbiamo utilizzato la parola chiave struct. Lo struct_name è il nome della struttura.

I membri della struttura vengono aggiunti tra parentesi graffe. Questi membri probabilmente appartengono a tipi di dati diversi.

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 è di tipo 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 struttura

Nell'esempio precedente, abbiamo creato una struttura denominata Person. Possiamo creare una variabile struct come segue:

Person p;

La p è una variabile struttura di tipo Persona. Possiamo usare questa variabile per accedere ai membri della struttura.

Accesso ai membri della struttura

Per accedere ai membri della struttura, utilizziamo l'istanza della struttura e l'operatore punto (.). Ad esempio, per accedere all'età del membro della struttura Persona:

p.age = 27;

Abbiamo effettuato l'accesso all'età del membro della struct Person utilizzando l'istanza della struct, p. Abbiamo quindi impostato il valore dell'età del membro su 27.

Esempio 1:

#include <iostream>    
using 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:

Accesso ai membri della struttura

Ecco uno screenshot del codice:

Accesso ai membri della struttura

Spiegazione del codice:

  1. Includi il file header iostream nel nostro programma per utilizzare le funzioni definite in esso.
  2. Includere lo spazio dei nomi std per utilizzare le sue classi senza chiamarlo.
  3. Crea una struttura denominata Person.
  4. L'inizio del corpo della struttura.
  5. Creare un membro della struttura denominato cittadinanza di tipo intero.
  6. Creare un membro della struttura denominato age di tipo intero.
  7. Fine del corpo della struttura.
  8. Chiama la funzione main(). La logica del programma dovrebbe essere aggiunta al corpo di questa funzione.
  9. Creare un'istanza della struttura Person e assegnarle il nome p.
  10. Imposta il valore della cittadinanza del membro della struttura su 1.
  11. Imposta il valore dell'età del membro della struttura su 27.
  12. Stampa il valore della cittadinanza del membro della struttura sulla console insieme ad altro testo.
  13. Stampa il valore dell'età del membro della struttura sulla console insieme ad altro testo.
  14. Il programma dovrebbe restituire un valore se viene eseguito correttamente.
  15. Fine della funzione main().

Puntatori alla struttura

È possibile creare un puntatore che punta a una struttura. È simile a come vengono creati i puntatori che puntano a tipi di dati nativi come int, float, double, ecc. Nota che un puntatore in C++ memorizzerà una posizione di memoria.

Esempio 2:

#include <iostream>
using 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:

Puntatori alla struttura

Ecco uno screenshot del codice:

Puntatori alla struttura

Spiegazione del codice:

  1. Includi il file header iostream nel nostro programma per poter utilizzare le sue funzioni.
  2. Includi lo spazio dei nomi std nel nostro programma per utilizzare le sue classi senza chiamarlo.
  3. Crea una struttura denominata Length.
  4. Inizio del corpo della struttura Length.
  5. Creare un membro della struttura denominato metri con tipo di dati intero.
  6. Creare un membro della struttura denominato centimetri di tipo intero.
  7. Fine del corpo della struttura Length.
  8. Chiama la funzione main().
  9. Inizio del corpo della funzione main().
  10. Creare una variabile puntatore *ptr e una variabile normale l di tipo Length.
  11. Memorizza l'indirizzo della variabile l nel nostro puntatore variabile.
  12. Visualizza un messaggio sulla console, chiedendo all'utente di inserire il valore per i contatori variabili.
  13. Leggere il valore inserito dall'utente tramite tastiera. Qui si accede alla funzione membro metri utilizzando la variabile puntatore.
  14. Visualizza un messaggio sulla console, chiedendo all'utente di inserire il valore per i centimetri variabili.
  15. Leggere il valore inserito dall'utente tramite tastiera. Qui si accede alla funzione membro centimetri utilizzando la variabile puntatore.
  16. Visualizza i valori letti dall'utente sulla console insieme ad altro testo.
  17. Il programma deve restituire un valore dopo l'esecuzione riuscita.
  18. Fine del corpo della funzione main().

Struttura come argomento di 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. Dimostriamolo:

Esempio 3:

#include<iostream>
using 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<<endl;
	cout << " Person age: " << p.age;
}

Produzione:

Struttura come argomento di funzione

Ecco uno screenshot del codice:

Struttura come argomento di funzione

Spiegazione del codice:

  1. Includi il file di intestazione iostream nel nostro file. Utilizzeremo quindi le sue funzioni senza ottenere errori.
  2. Includi 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.
  3. Crea una struttura denominata Person.
  4. Inizio del corpo della struttura Person.
  5. Crea un membro della struttura Person. Il membro è denominato cittadinanza ed è di tipo intero.
  6. Crea un membro della struttura Person. Il membro è denominato age ed è di tipo intero.
  7. Fine del corpo della struttura Persona.
  8. Creare una funzione che accetti l'istanza della struttura Person, p, come argomento.
  9. Chiama la funzione principale. Il { segna l'inizio del corpo della funzione main().
  10. Creare un'istanza della struttura Person e assegnarle il nome p.
  11. Accedi alla variabile cittadinanza del membro della struttura utilizzando l'istanza della struttura, p, e assegnandole il valore 1.
  12. Accedi alla variabile del membro della struttura age utilizzando l'istanza della struttura, p, e assegnandole il valore 27.
  13. Chiama la funzione e passale l'istanza della struttura Person, p, come argomento.
  14. La funzione deve restituire un valore dopo l'esecuzione riuscita.
  15. Fine del corpo della funzione main().
  16. Creare il corpo della funzione.
  17. L'inizio del corpo della funzione.
  18. Accedi al valore di cittadinanza del membro della struttura e stampalo sulla console insieme ad altro testo.
  19. Accedi al valore dell'età del membro della struttura e stampalo sulla console insieme ad altro testo.
  20. Fine del corpo della funzione.

Limitazione di a C++ La struttura

Di seguito sono riportati i limiti delle strutture:

  • Il tipo di dati struct non può essere trattato come tipi di dati incorporati.
  • Operatori come + - e altri non possono essere utilizzati 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 di dati appartenenti a tipi diversi.
  • Mentre un array memorizza elementi di dati di tipo simile, una struttura memorizza elementi di dati di tipi diversi.
  • Una struttura dovrebbe essere utilizzata quando non si prevede che gli elementi dei dati cambino valore.
  • È possibile accedere ai membri di una struttura utilizzando l'operatore punto (.).
  • Dobbiamo creare un'istanza della struttura.
  • Per creare un C++ struct, 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 normali funzioni.