Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Salve,
purtroppo il mio libro sul c++ spiega come fare le classi ma non come separarle in un file a se stante.
Ho cercato su internet ma non sono riuscito a capire come dividere una classe in modo da metterla in unico file, in modo da poterla riutilizzare comodamente.
Provando ho fatto così però non so se va bene:
classe.h
Codice sorgente - presumibilmente C++
class porva{
public:
int x;
void metodo1();
void metodo2();
};
prova::metodo1(){}
prova::metodo2(){}
main.cpp
Codice sorgente - presumibilmente C++
#include<iostream>
#include"prova.h"
usingnamespace std;
int main(){
prova p;
return0;
}
Tutto funziona alla grande, però ho paura che non sia il metodo corretto.
Quello che faccio è giusto o no?
grazie
p.s. ho fatto una classe più complessa e funziona benissimo, l'esempio sopra riportato è solo per fare capire come ho strutturato la classe
Ultima modifica effettuata da XBarboX il 14/05/2011 alle 18:54
Lo pensavo anche io , però facendo questo sorgente mi da errore:
main.cpp
Codice sorgente - presumibilmente C++
#include<iostream>
#include"rettangolo.h"
usingnamespace std;
int main(){
rettangolo r;
r.base=1;
r.altezza=3;
cout<<r.area()<<endl;
return0;
}
rettangolo.h
Codice sorgente - presumibilmente C++
class rettangolo{
public:
int base;
int altezza;
int area();
};
rettangolo.cpp
Codice sorgente - presumibilmente C/C++
#include "rettangolo.h"
int rettangolo::area(){
return base*altezza;
}
Ecco l'errore:
enrico@ubuntu:~/src/c++$ g++ main.cpp -o main
/tmp/cc7cPgK2.o: In function `main':
main.cpp.text+0x21): undefined reference to `rettangolo::area()'
collect2: ld returned 1 exit status
Sembra che il file rettangolo.cpp per lui non esista...
ciao,
per buona norma le variabili potresti metterle private nella classe rettangolo.
Per quanto riguarda l'errore, la funzione area nell'header è dichiarata?
()
Newbie
Messaggi: Iscritto:
0
Postato alle 17:00
Domenica, 15/05/2011
prova a metterci il costruttore, o ad includere il .cpp anziché il .h
per il costruttore può darsi, ma per il file .cpp non credo! - carmelolg - 15/05/11 17:58
risposta assurda...il compilatore aggiunge il costruttore di default se non esiste e il file da includere è il .h... - lorenzo - 15/05/11 20:43