Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - Problema compilazione separata classi
Forum - C/C++ - Problema compilazione separata classi

Avatar
Babbolsort (Normal User)
Newbie


Messaggi: 2
Iscritto: 17/05/2010

Segnala al moderatore
Postato alle 12:16
Lunedì, 17/05/2010
Salve,
ho un problema nella compilazione di una classe C++:
creo un file .h con SOLO la dichiarazione dei prototipi della classe:
Codice sorgente - presumibilmente C

  1. #ifndef _CARS_H
  2. #define _CARS_H
  3.  
  4. class cars
  5. {
  6.  
  7. private:
  8.     double efficienza;
  9.     double distanza;
  10.     double gas;
  11.  
  12. public:
  13.     cars();
  14.     cars(double e);
  15.     double get_gas();
  16.     double add_gas(double g);
  17.     double drive(double d);
  18.  
  19. }
  20.  
  21. #endif  /* _CARS_H */



Poi un .cpp con le dichiarazioni delle funzioni membro:
Codice sorgente - presumibilmente C

  1. #include "cars.h"
  2.  
  3. cars::cars() {};
  4.  
  5. cars::cars(double e){};
  6.  
  7. double cars::add_gas(double g){};
  8.  
  9. double cars::drive(double d){};
  10.  
  11. double cars::get_gas(){};



ed il main.cpp , vuoto, solo per provare che i precedenti sorgenti funzionino correttamente:
Codice sorgente - presumibilmente C++

  1. #include <iostream>
  2. #include"cars.h"
  3. using namespace std;
  4.  
  5. int main() {
  6.  
  7.     return 0;
  8. }



La compilazione del main genera il seguente errore:
Codice sorgente - presumibilmente Delphi

  1. /usr/bin/make -f nbproject/Makefile-Debug.mk SUBPROJECTS= .build-conf
  2. make[1]: ingresso nella directory «/home/david/NetBeansProjects/SimulaMacchina»
  3. /usr/bin/make  -f nbproject/Makefile-Debug.mk dist/Debug/GNU-Linux-x86/simulamacchina
  4. make[2]: ingresso nella directory «/home/david/NetBeansProjects/SimulaMacchina»
  5. mkdir -p build/Debug/GNU-Linux-x86
  6. rm -f build/Debug/GNU-Linux-x86/cars.o.d
  7. g++    -c -g -MMD -MP -MF build/Debug/GNU-Linux-x86/cars.o.d -o build/Debug/GNU-Linux-x86/cars.o cars.cpp
  8. cars.h:4: error: new types may not be defined in a return type
  9. cars.h:4: note: (perhaps a semicolon is missing after the definition of ‘cars’)
  10. cars.cpp:3: error: return type specification for constructor invalid
  11. make[2]: *** [build/Debug/GNU-Linux-x86/cars.o] Errore 1
  12. make[2]: uscita dalla directory «/home/david/NetBeansProjects/SimulaMacchina»
  13. make[1]: *** [.build-conf] Errore 2
  14. make[1]: uscita dalla directory «/home/david/NetBeansProjects/SimulaMacchina»
  15. make: *** [.build-impl] Errore 2
  16. BUILD FAILED (exit value 2, total time: 179ms)




Dov'è il problema? :d
Grazie in anticipo a chi risponderà, a presto :hail: :hail: :hail: :hail: :hail:

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 5475
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 12:53
Lunedì, 17/05/2010
In cars.h alla fine della dichiarazione della classe manca il ;


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
PM Quote
Avatar
Babbolsort (Normal User)
Newbie


Messaggi: 2
Iscritto: 17/05/2010

Segnala al moderatore
Postato alle 18:33
Lunedì, 17/05/2010
Testo quotato

Postato originariamente da nessuno:

In cars.h alla fine della dichiarazione della classe manca il ;


Oh mamma mia... Ci stavo impazzendo da ore! Ti ringrazio :)

PM Quote