|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Jun 2008
Messaggi: 384
|
[C++] Leggere i membri di una struttura
Io ho una struttura (struct), che semplicemente memorizza degli elementi di un insieme. Userò un classico esempio per farmi capire:
Io ho una struttura che mi consente di memorizzare i nomi degli allievi di una classe: Struct Studente {string nome1,string nome2 ecc..} con i membri: Studente alunno; alunno.nome1=""; alunno.nome2""; ecc.. La struttura può avere da 2 a 10 membri alunno (perchè ne ho dichiarate una decina di strutture simili, ognuna con una quantità di membri diversa). Se io voglio leggere tutti i membri di questa struttura, e comparare essi con un valore restituito da una funzione, devo creare io una funzione specifica per questo? Ho esiste un metodo una funzione per leggere tutti i membri di una struttura? In pratica io ho i mebri studente: pippo,pluto,gino voglio leggere tutti questi 3 membri dalla struttura e verificare che siano nomi diversi da un nome restituito da una mia funzione. Ma non conosco quanti studenti compongono la struttura. In questo caso sono 3, ma potevano essere un numero da 2 a dieci. Inoltre secondo voi usare l'oggetto di tipo struttura (struct), conviene solo con membri di tipo string o sono funzionali anche con semplici variabili di tipo char? In pratica se io invece di avere degli aggregati di nomi di studenti ho a che fare con cordinate alfanumeriche, mi conviene usare sempre le strutture? Ultima modifica di Albitexm : 04-05-2010 alle 21:49. |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Oct 2005
Messaggi: 3306
|
Forse dovresti studiare le liste.
E già che parli di C++ provare con vector<string> (o list<string>, ma vector è un pò più versatile) |
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Oct 2006
Città: Roma
Messaggi: 1383
|
se ho capito bene, anziché dichiarare N struct diverse potresti fare cosi:
Codice:
template<unsigned int _cMembers> struct CClass { static const unsigned int m_cMembers = _cMembers; string m_aMembers[_cMembers]; }; |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 05:37.