Oppure

Loading
01/08/16 14:18
venerbamirco99
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
aaa
01/08/16 14:23
Non ti hanno risposto qui

iprogrammatori.it/forum-programmazione/cplusplus/…

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 ...
01/08/16 14:29
venerbamirco99
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
aaa
01/08/16 14:36
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.
01/08/16 15:22
venerbamirco99
e quindi quale sarebbe l' uso principale delle union?
aaa
01/08/16 16:15
lumo
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
typedef struct
{
   field_che_rappresenta_tipo_oggetto;
   union
   {
       tipo_int;
       tipo_stringa;
       tipo_oggetto;
        ....
    } data;
} 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.
aaa
01/08/16 18:31
venerbamirco99
grazie, mi sei stato d'aiuto
aaa