Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - Istanziare oggetto con nome dato in input
Forum - C/C++ - Istanziare oggetto con nome dato in input

Avatar
2_rici (Normal User)
Newbie


Messaggi: 11
Iscritto: 16/12/2010

Segnala al moderatore
Postato alle 20:16
Domenica, 06/11/2011
Salve a tutti,
credo di non essere stato molto chiaro nel titolo vedo di spiegarmi meglio.

Ho un client ed un server che comunicano tramite una socket, nel client ci sarà solo un menù mentre nel server verranno istanziati i vari oggetti.
Il client inizialmente chiederà quante "moto" vuole e scriverà sulla socket il numero N ricevuto in input.
Il server leggendo questo numero instanzierà allora N oggetti di tipo moto. Il problema mi viene qui.
Come potrei fare? io pensavo di farlo in un ciclo for dove ad ogni iterazione istanzia un oggetto di tipo moto, però in questo modo nel ciclo avrei qualcosa del tipo

Codice sorgente - presumibilmente C/C++

  1. Moto nomevariabile = New Moto()



il che vorrebbe dire che dopo N iterazioni mi troverei un unico oggetto nomevariabile (su cui è stato riscritto).
Pensavo perciò di passare tramite la socket il nome della moto, memorizzarmi i nomi in una lista e poi nel ciclo for istanziare ogni oggetto moto con il nome della variabile preso dal nome inserito in input.

per avere una cosa del genere.

se in list [0] ho "Ciao" allora vorrei avere un oggetto Ciao di tipo Moto.
e via così per ogni elemento nella lista.
Volevo sapere come era possibile fare o una via alternativa !

Grazie !

p.s: è un brutto modo di programmare? in quanto su google non ho trovato nessuno con questo problema (potrei anche aver posto la domanda sbagliata a google però :yup: )



PM Quote
Avatar
lorenzo (Normal User)
Guru


Messaggi: 1178
Iscritto: 15/04/2008

Segnala al moderatore
Postato alle 21:13
Domenica, 06/11/2011
ma sai che esistono gli array?? Hai mai studiato programmazione??

Codice sorgente - presumibilmente C/C++

  1. #include <vector>
  2.  
  3. int main()
  4. {
  5.    int n = 10;
  6.    std::vector<Moto *> vettoreMoto;
  7.  
  8.    for(int i = 0; i < n; i++)
  9.       vettoreMoto.push_back(new Moto());
  10. }


PM Quote
Avatar
anthony015 (Member)
Pro


Messaggi: 116
Iscritto: 20/05/2011

Segnala al moderatore
Postato alle 22:44
Domenica, 06/11/2011
Ciaffo ciaffo ciaffo ciaffo zoooooooooone!!

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6402
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 10:21
Lunedì, 07/11/2011
Testo quotato

Postato originariamente da lorenzo:

Hai mai studiato programmazione??



Caro Lorenzo, questa è la conseguenza di quello che dico sempre ... non si studia  la teoria ... ci si butta subito a scrivere programmi "client/server" (se non keylogger e/o affini) e non si conoscono le basi ...


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote
Avatar
gigisoft (Member)
Guru


Messaggi: 696
Iscritto: 11/10/2008

Segnala al moderatore
Postato alle 12:10
Lunedì, 07/11/2011
Caro 2_rici,

mai sentito parlare di liste?

Studia, studia, che non ti fa male.

PM Quote
Avatar
2_rici (Normal User)
Newbie


Messaggi: 11
Iscritto: 16/12/2010

Segnala al moderatore
Postato alle 16:28
Lunedì, 07/11/2011
ho scritto una "castroneria" :)

erano 6 ore che ero davanti al computer, ci può stare! scusatemi

comunque non mi sono piaciute troppo le vostre risposte, mi son sentito uno stupido nel leggerle. Sono un matematico può succedere che qualcosa fuori dal mio "campo" mi passi di mente, come può succedere a qualcun altro su argomenti che io, magari, ritengo banali. Sicuramente continuerò il mio studio, non si finisce mai di imparare.

Vi ringrazio in ogni caso.


Saluti

G.

PM Quote
Avatar
lorenzo (Normal User)
Guru


Messaggi: 1178
Iscritto: 15/04/2008

Segnala al moderatore
Postato alle 19:08
Lunedì, 07/11/2011
Mi spiace, ma se una persona si mette a scrivere un programma complesso(client-server, significa che devi conoscere bene socket, architettura di rete, strutture di base di C) deve saper prima programmare.

Non mi metto a riparare una macchina senza sapere neanche cosa sono le ruote.

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6402
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 19:49
Lunedì, 07/11/2011
Testo quotato

Postato originariamente da 2_rici:
comunque non mi sono piaciute troppo le vostre risposte, mi son sentito uno stupido nel leggerle. Sono un matematico può succedere che qualcosa fuori dal mio "campo" mi passi di mente, come può succedere a qualcun altro su argomenti che io, magari, ritengo banali. Sicuramente continuerò il mio studio, non si finisce mai di imparare.



Beh ... se mi fossi messo a risolvere un integrale, avessi avuto problemi con le 4 operazioni di base e mi fossi rivolto ad un forum di matematici, mi sarei preso le stesse risposte (e le avrei solamente accettate ...).


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote