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++ - 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: 6380
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 ...
---
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
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