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++ - Classe non corretta?
Forum - C/C++ - Classe non corretta?

Avatar
Stefano (Ex-Member)
Rookie


Messaggi: 32
Iscritto: 27/12/2007

Segnala al moderatore
Postato alle 22:09
Giovedì, 17/09/2009
Salve ho un programma che nonostante le mie ripetute ricerche su google non ha ancora trovato una soluzione:

Codice sorgente - presumibilmente C++

  1. /*
  2. Definizione classe database
  3. */
  4. #pragma warning
  5. class Cdb
  6. {
  7. public:
  8.         Cdb();
  9.         ~Cdb();
  10.  
  11.          char* host;
  12.         char* user;
  13.         char* password;
  14.         char* db;
  15.         MYSQL conn;                     //struttura per la connessione
  16.         my_ulonglong risult_num,risult2; //numero risultati
  17.         MYSQL_RES *risultato;   //struttura per il risultato
  18.         MYSQL_RES *risultato2; 
  19.         MYSQL_ROW row;          //variabile che memorizza una riga
  20.         void connect()
  21.         {
  22.         mysql_init(&this->conn); //inizializza la struttura per la connessione
  23.         mysql_options(&this->conn,MYSQL_OPT_COMPRESS,0);
  24.         if (!mysql_real_connect(&this->conn,this->host,this->user,this->password,this->db,0,NULL,0)) //Connetto al DB
  25.         {  
  26.                 fprintf(stderr,"Errore nella connessione al database: %s\n", mysql_error(&this->conn));
  27.                 dbconn = false;
  28.                 //getchar();
  29.                 //exit(1);
  30.         }
  31.         }
  32.         void disconnect()
  33.         {
  34.                         /*Al termine della classe distruggo il puntatore del db*/
  35.                         mysql_close(&this->conn);
  36.         }
  37.  
  38.  
  39. };
  40.  
  41.  
  42. Cdb::Cdb() //Costruttore
  43. {
  44. }
  45. Cdb::~Cdb() // Distruttore
  46. {
  47.  
  48. }
  49.  
  50. Cdb vwardb;
  51. vwardb.connect();



Al momento della compilazione (USO VS2005), questa si ferma:

1>db_class.h(51) : error C2143: errore di sintassi: ';' mancante prima di '.'
1>db_class.h(51) : error C4430: identificatore di tipo mancante, verrà utilizzato int. Nota: default-int non è più supportato in C++
1>db_class.h(51) : error C2371: 'vwardb': ridefinizione. Tipi di base differenti.

Cercando soluzioni su google, inerenti agli errori, non sono venute a me soluzioni reali. Chiedo aiuto :)

Ultima modifica effettuata da Stefano il 17/09/2009 alle 22:17
PM Quote
Avatar
theprogrammer (Normal User)
Guru^2


Messaggi: 2509
Iscritto: 28/01/2009

Segnala al moderatore
Postato alle 22:37
Giovedì, 17/09/2009
E l'include di mysql dove sta?

Quale compilatore usi?

PM Quote
Avatar
Stefano (Ex-Member)
Rookie


Messaggi: 32
Iscritto: 27/12/2007

Segnala al moderatore
Postato alle 23:01
Giovedì, 17/09/2009
uso vs2005.
L'include di mysql sta in altre librerie, questa è una specifica :)

PM Quote
Avatar
theprogrammer (Normal User)
Guru^2


Messaggi: 2509
Iscritto: 28/01/2009

Segnala al moderatore
Postato alle 23:02
Giovedì, 17/09/2009
Testo quotato

Postato originariamente da Stefano:

uso vs2005.
L'include di mysql sta in altre librerie, questa è una specifica :)



Altre librerie? Cosa intendi?

In ogni caso, l'include deve stare anche all'inzio di questo codice, altrimenti come fa il compilatore, ad esempio, a sapere cosa e'

MYSQL

o

MYSQL_RES

???

PM Quote
Avatar
Stefano (Ex-Member)
Rookie


Messaggi: 32
Iscritto: 27/12/2007

Segnala al moderatore
Postato alle 23:04
Giovedì, 17/09/2009
praticamente il progetto è composto da:

- main.cpp (dove ci sono i riferimenti a mysql)
- db_class.h (viene incluso dopo i riferimenti in main.cpp)

PM Quote
Avatar
theprogrammer (Normal User)
Guru^2


Messaggi: 2509
Iscritto: 28/01/2009

Segnala al moderatore
Postato alle 23:10
Giovedì, 17/09/2009
Quindi questa linea

vwardb.connect();

sta al di fuori di qualsiasi funzione ... e questo non e' consentito in un programma C/C++ ...

PM Quote
Avatar
Stefano (Ex-Member)
Rookie


Messaggi: 32
Iscritto: 27/12/2007

Segnala al moderatore
Postato alle 23:19
Giovedì, 17/09/2009
Testo quotato

Postato originariamente da theprogrammer:

Quindi questa linea

vwardb.connect();

sta al di fuori di qualsiasi funzione ... e questo non e' consentito in un programma C/C++ ...



grazie mi ero proprio dimenticato di questa cosa, d'altronde è tre mesi che non tocco il c++ :S

PM Quote