C++ Struttura con l'esempio

โšก Riepilogo intelligente

Struttura in C++ รจ un tipo di dati definito dall'utente che raggruppa elementi di diversi tipi di dati sotto un unico nome, consentendo a una variabile di contenere valori correlati come nome di persona, cittadinanza ed etร .

  • ๐Ÿ“ฆ Diversi tipi di dati: Una struttura raggruppa variabili di tipi diversi sotto un nome definito dall'utente.
  • ๐Ÿ”‘ parola chiave struct: Definisci una struttura con la parola chiave `struct`, quindi elenca i membri tra parentesi graffe.
  • ๐Ÿงฑ Creazione delle istanze: Scrivendo Person p si crea una variabile di tipo struct e se ne alloca la memoria.
  • ๐ŸŽฏ Operatore punto: Leggere o impostare qualsiasi membro tramite l'istanza, come in p.age = 27.
  • โžก๏ธ Puntatori e funzioni: Una struct funziona con i puntatori e viene passata a una funzione come un normale argomento.
  • ๐Ÿค– Assistenza AI: GitHub Copilot e altri assistenti basati sull'intelligenza artificiale generano automaticamente definizioni di struct e l'accesso ai membri a partire da un commento.

C++ struttura

Cos'รจ una struttura in C++?

Una struttura รจ una 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 il gruppoping elementi di diversi tipi di dati sotto 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 i diversi individui. Ad esempio, nome1, cittadinanza1, etร 1 e cosรฌ via. Per evitare questo, รจ meglio creare una struct.

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

Code Spiegazione:

  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

Code Spiegazione:

  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

Code Spiegazione:

  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.

DOMANDE FREQUENTI

In C++ Una struct e una class sono quasi identiche. L'unica vera differenza risiede nell'accesso predefinito: i membri di una struct sono pubblici per impostazione predefinita, mentre i membri di una class sono privati. Entrambe supportano funzioni membro, costruttori ed ereditarietร .

La struttura AC contiene solo dati e devi scrivere struct prima di ogni dichiarazione di variabile. C++ La struct puรฒ includere anche funzioni membro, costruttori e specificatori di accesso, e la parola chiave struct รจ facoltativa quando si dichiarano le variabili.

Dichiara la struct, quindi definisci un array di essa, ad esempio Person people[3]. Ogni elemento รจ una struct completa e puoi accedere ai membri con people[0].age. Gli array di struct memorizzano insieme molti record dello stesso tipo.

Una struttura annidata รจ una struttura dichiarata come membro all'interno di un'altra struttura. Raggruppa sotto-dati correlati, come ad esempio una struttura Data inserita all'interno di una struttura Dipendente. Per accedere ai membri interni, si utilizza l'operatore punto in sequenza.

La dimensione รจ approssimativamente la somma dei suoi membri, piรน il padding aggiunto dal compilatore per l'allineamento, quindi sizeof puรฒ superare il totale grezzo. Le funzioni membro non aggiungono nulla. Ordinare i membri per dimensione riduce il padding superfluo.

Utilizza l'operatore freccia quando mantieni un puntatore a una struct. Invece di (*ptr).age, la scorciatoia ptr->age legge lo stesso membro. L'operatore punto funziona su un'istanza diretta, non su un puntatore.

Sรฌ. Gli assistenti di programmazione basati sull'IA trasformano un breve prompt o commento in un programma completo C++ Struttura, inclusi membri, costruttori e accesso ai campi. รˆ sempre opportuno rivedere i tipi di dati generati e il loro allineamento, poichรฉ l'IA potrebbe non rilevare i requisiti specifici del progetto.

Sรฌ. Le serrature scorrevoli portatili e i catenacci a superficie possono essere usati per mettere in sicurezza una porta a scomparsa dall'esterno. Alcuni kit con catena di sicurezza consentono anche il bloccaggio esterno con chiave o manopola girevole. Copilota GitHub Suggerisce definizioni di struct, variabili membro e accesso tramite punto o freccia mentre digiti nell'editor. Gestisce bene il codice ripetitivo, anche se รจ comunque consigliabile verificare tipi, spaziatura e logica prima della compilazione.

Riassumi questo post con: