Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - struct union e classi c++
Forum - C/C++ - struct union e classi c++

Avatar
venerbamirco99 (Normal User)
Newbie


Messaggi: 4
Iscritto: 01/08/2016

Segnala al moderatore
Postato alle 16:18
Lunedì, 01/08/2016
buongiorno a tutti, sono nuovo del forum.
sono in quarta superiore indirizzo informatica.
io ho capito, (so applicare) le classi, unioni e strutture (class, union, struct) ma devo ancora capire le differenza tra questi. qualcuno me le potrebbe spiegare? grazie a chi risponde


Venerba Mirco
PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 5475
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 16:23
Lunedì, 01/08/2016
Non ti hanno risposto qui

https://www.iprogrammatori.it/forum-programmazione/cplusplu ...

perché non è possibile fare lezioni di C/C++ su un forum in una risposta.

Queste domande sono troppo generiche e sono tutte cose che leggi e studi da un libro.

Se hai uno SPECIFICO dubbio (ad esempio, tra una classe e una struttura) e fai una domanda PRECISA, magari con degli esempi o codice che non comprendi, allora è facile avere risposte concrete ...


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
PM Quote
Avatar
venerbamirco99 (Normal User)
Newbie


Messaggi: 4
Iscritto: 01/08/2016

Segnala al moderatore
Postato alle 16:29
Lunedì, 01/08/2016
ahh ok grazie. quali potrebbero essere le principali differenze, le so usare ma non so se in alcuni casi mi convengono classi strutture o unioni


Venerba Mirco
PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 5475
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 16:36
Lunedì, 01/08/2016
Non sono strutture utilizzabili in ogni situazione, specialmente le union hanno un utilizzo ben preciso.

Classi e struct potrebbero essere usate in modo simile ma personalmente ti consiglio di usare le strutture solo per raggruppare dati e non per gestire metodi.


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
PM Quote
Avatar
venerbamirco99 (Normal User)
Newbie


Messaggi: 4
Iscritto: 01/08/2016

Segnala al moderatore
Postato alle 17:22
Lunedì, 01/08/2016
e quindi quale sarebbe l' uso principale delle union?


Venerba Mirco
PM Quote
Avatar
lumo (Member)
Expert


Messaggi: 413
Iscritto: 18/04/2010

Segnala al moderatore
Postato alle 18:15
Lunedì, 01/08/2016
Se non fai programmazione a livello basso in genere non ti servono union.
Comunque puoi vederle come un modo per risparmiare memoria quando raggruppi un insieme di field però sai che non verranno usati insieme, ma solo uno alla volta.
Quest'ultima rende le union totalmente diverse dalle strutture. Un esempio classico è un linguaggio dinamico, tipo python o php, in cui forse sai che le variabili possono avere qualsiasi tipo.
Nel codice C che implementa l'interprete, ad esempio python, trovi una cosa simile a questa
Codice sorgente - presumibilmente C/C++

  1. typedef struct
  2. {
  3.    field_che_rappresenta_tipo_oggetto;
  4.    union
  5.    {
  6.        tipo_int;
  7.        tipo_stringa;
  8.        tipo_oggetto;
  9.         ....
  10.     } data;
  11. } PyObject;


Che rappresenta una variabile python: siccome può avere un tipo solo, ogni field di data sarà utilizzato esclusivamente. In generale se accedi al field sbagliato, ad esempio se il tipo è intero e accedi a stringa, ci sarà un comportamento indeterminato (probabilmente sbagliato).
La cosa utile è che data avrà la stessa grandezza dell'oggetto più grande dentro la union (senza andare a vedere allineamenti e cose varie introdotte dal compilatore), insomma risparmi memoria rispetto all'utilizzo di una struct.
Ci sono altri utilizzi un po' più esoterici ma non ha senso che li impari ora.

Riguardo a classi e strutture, in C le strutture contenevano solo dati, in C++ invece struct e class sono sinonimi ma la classe ha visibilità privata di default, mentre la struttura pubblica.

PM Quote
Avatar
venerbamirco99 (Normal User)
Newbie


Messaggi: 4
Iscritto: 01/08/2016

Segnala al moderatore
Postato alle 20:31
Lunedì, 01/08/2016
grazie, mi sei stato d'aiuto


Venerba Mirco
PM Quote