Torna indietro   Hardware Upgrade Forum > Software > Programmazione

HONOR Magic 8 Pro: ecco il primo TOP del 2026! La recensione
HONOR Magic 8 Pro: ecco il primo TOP del 2026! La recensione
HONOR ha finalmente lanciato il suo nuovo flagship: Magic 8 Pro. Lo abbiamo provato a fondo in queste settimane e ve lo raccontiamo nella nostra recensione completa. HONOR rimane fedele alle linee della versione precedente, aggiungendo però un nuovo tasto dedicato all'AI. Ma è al suo interno che c'è la vera rivoluzione grazie al nuovo Snapdragon 8 Elite Gen 5 e alla nuova MagicOS 10
Insta360 Link 2 Pro e 2C Pro: le webcam 4K che ti seguono, anche con gimbal integrata
Insta360 Link 2 Pro e 2C Pro: le webcam 4K che ti seguono, anche con gimbal integrata
Le webcam Insta360 Link 2 Pro e Link 2C Pro sono una proposta di fascia alta per chi cerca qualità 4K e tracciamento automatico del soggetto senza ricorrere a configurazioni complesse. Entrambi i modelli condividono sensore, ottiche e funzionalità audio avanzate, differenziandosi per il sistema di tracciamento: gimbal a due assi sul modello Link 2 Pro, soluzione digitale sul 2C Pro
Motorola edge 70: lo smartphone ultrasottile che non rinuncia a batteria e concretezza
Motorola edge 70: lo smartphone ultrasottile che non rinuncia a batteria e concretezza
Motorola edge 70 porta il concetto di smartphone ultrasottile su un terreno più concreto e accessibile: abbina uno spessore sotto i 6 mm a una batteria di capacità relativamente elevata, un display pOLED da 6,7 pollici e un comparto fotografico triplo da 50 MP. Non punta ai record di potenza, ma si configura come alternativa più pragmatica rispetto ai modelli sottili più costosi di Samsung e Apple
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 05-01-2013, 15:32   #1
Grein
Member
 
L'Avatar di Grein
 
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."
Grein è offline   Rispondi citando il messaggio o parte di esso
Old 05-01-2013, 18:47   #2
[Kendall]
Senior Member
 
L'Avatar di [Kendall]
 
Iscritto dal: Jul 2005
Città: Vicenza
Messaggi: 1570
Quote:
Originariamente inviato da Grein Guarda i messaggi
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?
Invece di creare una lista di stringhe pure (in nomi degli invitati) ti crei una piccola classe (o una struct se preferisci, ma sinceramente nel c++ non vedo perchè utilizzarle essendo solo una eredità del c) che contenga sia il nome del partecipante che il nome di chi l'ha invitato. In questa maniera ogni istanza sarà caratterizzata da questa accoppiata fissa di valori inscindibili.
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.
[Kendall] è offline   Rispondi citando il messaggio o parte di esso
Old 05-01-2013, 18:54   #3
vendettaaaaa
Senior Member
 
L'Avatar di vendettaaaaa
 
Iscritto dal: Jan 2012
Messaggi: 1267
Quote:
Originariamente inviato da [Kendall] Guarda i messaggi
Invece di creare una lista di stringhe pure (in nomi degli invitati) ti crei una piccola classe (o una struct se preferisci, ma sinceramente nel c++ non vedo perchè utilizzarle essendo solo una eredità del c) che contenga sia il nome del partecipante che il nome di chi l'ha invitato. In questa maniera ogni istanza sarà caratterizzata da questa accoppiata fissa di valori inscindibili.
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.
A quanto ho letto (nel libro di Stroustrup) classi e struct sono identiche a meno della protezione di default (private e public rispettivamente). Se è così, non vedo perchè non usare le struct proprio alla vecchia maniera, cioè quando devono contenere solo dati e non funzioni. Io faccio così spesso e volentieri (una classe mi pare sprecata per contenere solo 2-3 variabili senza funzioni), e ho da poco visto che anche il C# considera le struct qualcosa di "piccolo e leggero" rispetto alle classi.
vendettaaaaa è offline   Rispondi citando il messaggio o parte di esso
Old 05-01-2013, 19:47   #4
stillano
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...
stillano è offline   Rispondi citando il messaggio o parte di esso
Old 05-01-2013, 23:49   #5
[Kendall]
Senior Member
 
L'Avatar di [Kendall]
 
Iscritto dal: Jul 2005
Città: Vicenza
Messaggi: 1570
Quote:
Originariamente inviato da vendettaaaaa Guarda i messaggi
A quanto ho letto (nel libro di Stroustrup) classi e struct sono identiche a meno della protezione di default (private e public rispettivamente). Se è così, non vedo perchè non usare le struct proprio alla vecchia maniera, cioè quando devono contenere solo dati e non funzioni. Io faccio così spesso e volentieri (una classe mi pare sprecata per contenere solo 2-3 variabili senza funzioni), e ho da poco visto che anche il C# considera le struct qualcosa di "piccolo e leggero" rispetto alle classi.
Quote:
Originariamente inviato da stillano Guarda i messaggi
è 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...
La questione è che come hai giustamente detto e come si può leggere per l'appunto dallo stesso libro di Stroustrup, le struct sono essenzialmente delle classi con membri sempre e solo pubblici. Non sono delle classi "più leggere" ma piuttosto "più limitate". Creare una classe con membri pubblici è veloce ed efficace quanto fare lo stesso lavoro con una struct, con la sola eccezione che ci si ritrova comunque con uno strumento più limitato per eventuali future espansioni e implementazioni.

Quote:
Se è così, non vedo perchè non usare le struct proprio alla vecchia maniera, cioè quando devono contenere solo dati e non funzioni.
In realtà anche le struct possono contenere funzioni (metodi), con l'eccezione che come tutto il resto dei membri sono pubbliche di default.
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
[Kendall] è offline   Rispondi citando il messaggio o parte di esso
Old 06-01-2013, 08:12   #6
AllerITA
Member
 
L'Avatar di AllerITA
 
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
AllerITA è offline   Rispondi citando il messaggio o parte di esso
Old 06-01-2013, 10:59   #7
[Kendall]
Senior Member
 
L'Avatar di [Kendall]
 
Iscritto dal: Jul 2005
Città: Vicenza
Messaggi: 1570
Quote:
Originariamente inviato da AllerITA Guarda i messaggi
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.
Nel C++ si, classi e struct sono la medesima cosa, possono avere entrambe costruttori e possono ereditare a loro volta da classi o struct, con la sola differenza della visibilità di default.
È 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.
[Kendall] è offline   Rispondi citando il messaggio o parte di esso
Old 06-01-2013, 11:49   #8
AllerITA
Member
 
L'Avatar di AllerITA
 
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
AllerITA è offline   Rispondi citando il messaggio o parte di esso
Old 06-01-2013, 14:29   #9
vendettaaaaa
Senior Member
 
L'Avatar di vendettaaaaa
 
Iscritto dal: Jan 2012
Messaggi: 1267
Quote:
Originariamente inviato da [Kendall] Guarda i messaggi
La questione è che come hai giustamente detto e come si può leggere per l'appunto dallo stesso libro di Stroustrup, le struct sono essenzialmente delle classi con membri sempre e solo pubblici. Non sono delle classi "più leggere" ma piuttosto "più limitate". Creare una classe con membri pubblici è veloce ed efficace quanto fare lo stesso lavoro con una struct, con la sola eccezione che ci si ritrova comunque con uno strumento più limitato per eventuali future espansioni e implementazioni.


In realtà anche le struct possono contenere funzioni (metodi), con l'eccezione che come tutto il resto dei membri sono pubbliche di default.
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.
Sì sì, lo so, ma quello che volevo dire io è: dato che non ci sono differenze sostanziali in C++ tra struct e class, come invece in C# dove sono considerate costrutti di "potenza" più limitata (sono value type, niente ereditarietà ecc), creo io questa differenza, usando le struct per contenere dati (come in questi casi: coppie di nomi/indirizzi, nomi/invitati eccetera) e quindi di fatto declassandole a meri contenitori, mentre uso le classi per creare oggetti con informazioni e comportamenti, non vado a "sprecare" una classe per accoppiare 3 stringhe. E' una mia prassi, penso condivisibile, che mi permette di scindere mentalmente struct da class.
Se poi come dici tu in futuro dovrò estendere le funzionalità della mia struct, mi basterà cambiare la keyword a class, per rimanere coerente
vendettaaaaa è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


HONOR Magic 8 Pro: ecco il primo TOP del 2026! La recensione HONOR Magic 8 Pro: ecco il primo TOP del 2026! L...
Insta360 Link 2 Pro e 2C Pro: le webcam 4K che ti seguono, anche con gimbal integrata Insta360 Link 2 Pro e 2C Pro: le webcam 4K che t...
Motorola edge 70: lo smartphone ultrasottile che non rinuncia a batteria e concretezza Motorola edge 70: lo smartphone ultrasottile che...
Display, mini PC, periferiche e networking: le novità ASUS al CES 2026 Display, mini PC, periferiche e networking: le n...
Le novità ASUS per il 2026 nel settore dei PC desktop Le novità ASUS per il 2026 nel settore de...
Samsung conferma l'arrivo di tre variant...
Sottile, veloce e con un'ottima autonomi...
Il top di gamma compatto di OnePlus &egr...
Modificare l'indirizzo Gmail è finalment...
Perché le GeForce RTX con pi&ugra...
Più tempo online non equivale a più disa...
Amazon Weekend: iPhone 17 Pro, robot asp...
TV OLED 65'' top di gamma al 50%: 144Hz,...
Londra si prepara al terremoto 'intellig...
Scope elettriche in offerta su Amazon: f...
iPhone 17 Pro a un nuovo minimo storico ...
DJI Mini 4 Pro Fly More Combo a 859€ su ...
Roborock in offerta su Amazon: QV 35A e ...
Crisi della RAM: Intel rassicura sul mer...
Dreame taglia i prezzi su Amazon: L40 Ul...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 17:18.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v