|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Dec 2009
Messaggi: 284
|
[C++]Gestione lista di invitati
ciao a tutti, devo fare un programma che mi permetta di inserire il nome di un tot di invitati in una lista. questi invitati possono a loro volta invitare altra gente che deve essere inserita nella lista. Fin qui tutto ok, poi devo cercare il nome di un invitato nella lista, e ok l'ho fatto ma devo poi dire da chi è stato invitato, come faccio?
__________________
"L' amore è l'unica cosa che possiamo percepire che trascende il tempo e lo spazio." |
|
|
|
|
|
#2 | |
|
Senior Member
Iscritto dal: Jul 2005
Città: Vicenza
Messaggi: 1570
|
Quote:
A quel punto ti crei una lista di queste istanze (la lista degli invitati per l'appunto) e hai risolto. A meno che non abbia sbagliato ad intendere il problema. |
|
|
|
|
|
|
#3 | |
|
Senior Member
Iscritto dal: Jan 2012
Messaggi: 1267
|
Quote:
|
|
|
|
|
|
|
#4 |
|
Member
Iscritto dal: Jan 2013
Messaggi: 134
|
è preferibile una struct quando si hanno poche variabili, questo è vero... però usare una classe significa poter aggiungere cose per ereditarietà riusando il codice...
comunque all'inizio si parlava di una lista, Grein per rispondere al tuo come faccio devi dire se hai una lista statica o dinamica a puntatori e se questa lista è implementata come struttura dati o come classe... in generale la soluzione sta nell'inserimento di una variabile per tener conto di chi invita... per esempio se è una lista dinamica puoi usare memorizzare in una variabile l'indirizzo dell'invitante... |
|
|
|
|
|
#5 | |||
|
Senior Member
Iscritto dal: Jul 2005
Città: Vicenza
Messaggi: 1570
|
Quote:
Quote:
Quote:
Per questo dico: "perchè usare una struct?". A me sembra solo uno strascico del C. P.S: non confondere le struct del C# con quelle del C++. Le prime hanno una natura ben diversa dalle classi, soprattutto per quanto concerne il fatto che sono dei Value Type, a differenza delle classi che sono Reference Type. Nel C++ questa distinzione non esiste. Ultima modifica di [Kendall] : 06-01-2013 alle 11:01. Motivo: Erroraccio grammaticale carpiato con giravolta all'indietro |
|||
|
|
|
|
|
#6 |
|
Member
Iscritto dal: Oct 2010
Città: Savona
Messaggi: 194
|
Quindi secondo voi è ammissibile avere in una struct un costruttore e un distruttore, e magari essere ereditata da un'altra classe o struct, secondo il vostro parere.
Se permettete io lo trovo molto difficile paragonare una struct a una classe. Specialmente come viene implementato dal compilatore. Bisogna considerare che il compilatore in una classe (se non indicato dal programmatore in modo esplicito) crea l'implementazione copia e assegnazione in modo automatico. E poi in una classe si deve esplicitamente designare un costruttore. (Leggetevi bene il libro "Effective C++" di Scott Meyers ) Cosa che non viene creata per le struct essendo contenitori di informazioni e eventualmente di funzioni e null'altro. Non per essere pignoli ma mi sembra un errore pensare che le due cose differiscano di poco. Poi se qualcuno riesce a dimostrarmi il contrario ben venga.
__________________
AMD Phenom II X6 3Ghz, MB Gigabyte 790xta-ud4 F4A, 4Gb Ram ddr3, HD Segate Barracuda 1T, SV ASUS GTX 560 Ti DirectCu II ,Monitor Philips 1920x1080 led 2 ms, Xbox360 Slim, Tablet Asus Transformer Pad TF300T, Gameboy Advance, Ipod Touch 16Gb |
|
|
|
|
|
#7 | |
|
Senior Member
Iscritto dal: Jul 2005
Città: Vicenza
Messaggi: 1570
|
Quote:
È per questo che, almeno io, non uso molto le struct, perchè uno crede di avere in mano una classica struct stile C, e in realtà è nè più nè meno che una classe nella sostanza. |
|
|
|
|
|
|
#8 |
|
Member
Iscritto dal: Oct 2010
Città: Savona
Messaggi: 194
|
Effettivamente la mia conoscenza delle struct in C++ non era approfondita.
Mi sono lasciato fuorviare dal C. In rete ho trovato materiale che conferma la tua asserzione. Grazie per la spiegazione. Nella vita non si smette di imparare.
__________________
AMD Phenom II X6 3Ghz, MB Gigabyte 790xta-ud4 F4A, 4Gb Ram ddr3, HD Segate Barracuda 1T, SV ASUS GTX 560 Ti DirectCu II ,Monitor Philips 1920x1080 led 2 ms, Xbox360 Slim, Tablet Asus Transformer Pad TF300T, Gameboy Advance, Ipod Touch 16Gb |
|
|
|
|
|
#9 | |
|
Senior Member
Iscritto dal: Jan 2012
Messaggi: 1267
|
Quote:
Se poi come dici tu in futuro dovrò estendere le funzionalità della mia struct, mi basterà cambiare la keyword a class, per rimanere coerente |
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 13:31.




















