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++ - Qt enum in struttura
Forum - C/C++ - Qt enum in struttura

Pagine: [ 1 2 ] Precedente | Prossimo
Avatar
Thejuster (Admin)
Guru^2


Messaggi: 2298
Iscritto: 04/05/2008

Segnala al moderatore
Postato alle 10:23
Domenica, 01/10/2017
Buongiorno purtroppo faccio ancora molta confusione tra c# e c++.
anche se sembrano estremamente simili cambiano molte cose...

ho un problema nell'utilizzare un enumeratore in una struttura.
semplicemente

Esempio:

Codice sorgente - presumibilmente C/C++

  1. enum Tipo { Denari, Bastoni, Spade, Coppe };
  2.  
  3. struct Carta
  4. {
  5.    int valore;
  6.    QRect rect;
  7.  
  8. }
  9.  
  10. QList<Carta> Mazzo;




il problema sorge quando devo utilizzare l'enumeratore
durante l'inserimento di un elemento nella lista.

se faccio in questo modo:

Codice sorgente - presumibilmente C/C++

  1. struct Carta
  2. {
  3.    int valore;
  4.    QRect rect;
  5.    Tipo tipo;  //ERRORE  "Nono sono accetti due tipi differenti"
  6. }




invece se faccio

Codice sorgente - presumibilmente C/C++

  1. struct Carta
  2. {
  3.    int valore;
  4.    QRect rect;
  5.    enum Tipo { Denari, Bastoni, Spade, Coppe };  //OK
  6. }





Ma poi trovo una serie di errori,
Vi mostro alcune prove fatte.

Codice sorgente - presumibilmente Plain Text

  1. Carta c;
  2. c.valore = 1;
  3. c.rect = QRect(10,10,100,100);
  4.  
  5. //Prove eseguite
  6. c.Tipo = c.Tipo.Denari; //Errore
  7. c.Tipo = Carta::Tipo.Denari; //Errore
  8. c.Tipo = Carta.Tipo.Denari; //Errore
  9. c.Tipo = c::Tipo.Denari; //Errore
  10. c.Tipo = 1; // Errore



Ho fatto tutte le prove immaginabili anche se sbagliate o forse corrette.
Non ho trovato nulla su google tranne qualche esempio sugli enum ma relativi a classi
e non a strutture.

Conoscete qualche soluzione? dove sbaglio?


Ultima modifica effettuata da Thejuster il 01/10/2017 alle 11:07


https://mire.forumfree.it/ - Mire Engine
C# UI Designer
PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6380
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 12:55
Domenica, 01/10/2017
Alla fine della struttura manca il ;

struct Carta
{
..
} ;


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
Thejuster (Admin)
Guru^2


Messaggi: 2298
Iscritto: 04/05/2008

Segnala al moderatore
Postato alle 9:29
Lunedì, 02/10/2017
non credo sia quello il problema nessuno.

Non ho ancora provato ma stamattina mi è sorto un dubbio.
Può essere che la lista QT  QList  non accetti tipi nativi come enum?

Magari non sò, esiste qualcosa tipo qenum  come QString,QRect etc.


https://mire.forumfree.it/ - Mire Engine
C# UI Designer
PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6380
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 10:52
Lunedì, 02/10/2017
Rimandiamo il discorso dopo che metti il ;
?


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
Thejuster (Admin)
Guru^2


Messaggi: 2298
Iscritto: 04/05/2008

Segnala al moderatore
Postato alle 11:05
Lunedì, 02/10/2017


https://mire.forumfree.it/ - Mire Engine
C# UI Designer
PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6380
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 11:21
Lunedì, 02/10/2017
Se non posti i file sorgenti (magari zippati) da compilare e provare, come si fa a rispondere?


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
lumo (Member)
Expert


Messaggi: 449
Iscritto: 18/04/2010

Segnala al moderatore
Postato alle 23:14
Martedì, 03/10/2017
Hai un'idea sbagliata su come funzionano le enum, se ho tempo domani faccio un post per chiarire, intanto se vuoi cerca cos'è "enum class" introdotto in C++11

PM Quote
Avatar
Thejuster (Admin)
Guru^2


Messaggi: 2298
Iscritto: 04/05/2008

Segnala al moderatore
Postato alle 9:35
Mercoledì, 04/10/2017
Si grazie lumo perché proprio non ci ho capito nulla.
Sarà che confondo c# e c++


https://mire.forumfree.it/ - Mire Engine
C# UI Designer
PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6380
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 13:12
Mercoledì, 04/10/2017
@TheJuster ... io ho compilato correttamente ... però se non provo il tuo codice non posso capire dove sbagli ...

Te l'avevo già chiesto ma se non puoi/vuoi, almeno dillo ...


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
Pagine: [ 1 2 ] Precedente | Prossimo