Newsgroup: it.comp.lang.c++
Titolo: prototipi di funzioni e implementazioni

Salve, vorrei porvi una domanda, e vorrei capire se sia possibile ciò
che voglio fare, in realtà l' ho fatto ma mi da un errore di tipo:
error: ‘Botirc’ has not been declared
dove Botirc è la classe, questo errore mi arriva compilando il file
cpp dove ci sono le implementazioni delle funzioni.
Allora spiego meglio ho due file, uno .h dove c' è la classe con i
prototipi di funzioni dichiarati, e un file .cpp dove ci sono le
implementazioni delle funzioni e la funzione main.
Cercando di compilare il file cpp includendo l' header file, mi da
quell' errore, mentre se prendo la classe e la metto nel file .cpp e
lo compilo mi va a buon file la compilazione senza nessun errore.
Penso che avrete capito, perchè mi da quell' errore?
c' è dice che la classe non è dichiarata, ma lo è, pure se in un altro
file...
cosa mi consigliate di fare?
grazie...

 perchï¿½ mi da quell' errore?
Suppongo che quando dici "prendo la classe e la metto nel file .cpp" 
intendi nello stesso punto in cui si trovava la direttiva #include.
Forse per qualche motivo il file header non viene realmente incluso, o a 
causa di una compilazione condizionale non viene inclusa la porzione del 
file contenente la dichiarazione desiderata.
Per scoprirlo, inserisci al suo interno la direttiva "#error <messaggio>".
Se in compilazione non ti genera tale errore, significa che il 
compilatore non passa di li'.
-- 
Carlo Milanesi
http://digilander.libero.it/carlmila

 Carlo Milanesihttp://
digilander.libero.it/carlmila
Si è vero, non include l' header file.
Non so perchè, eppure nel file .cpp ho incluso correttamente quel
header file, di questo sono sicuro.
Come posso fare?
Non è strano questo comportamento?
grazie...

 Non � strano questo comportamento?
No, se hai racchiuso il nome del file tra parentesi angolari invece che 
tra doppi apici.
Invece di:
#include <header.hpp>
scrivi:
#include "header.hpp"
Ma per dirti di piu' dovrei vedere i sorgenti.


 Carlo Milanesihttp://
digilander.libero.it/carlmila
No, non è quello l' errore, comunque ecco i sorgenti:
botfunc.h
http://cobra90nj.pastebin.com/m5777ecd9
botfunc.cpp
http://cobra90nj.pastebin.com/m662f9ed7
grazie...

 No, non � quello l' errore, comunque ecco i sorgenti:
Per i costruttori e i distruttori non si deve specificare il tipo.
Quindi togli quei "void" prima di "Botirc ()" e prima di "~Botirc ()".


 Carlo Milanesihttp://
digilander.libero.it/carlmila
si, ma comunque gli errori restano, ma ho un dubbio non è che devo
linkarlo manualmente l' header file?
Perchè io faccio cosi in modo molto semplice:
g++ botfunc.cpp
botfunc.cpp:6: error: ‘Botirc’ has not been declared
botfunc.cpp:12: error: expected initializer before ‘::’ token
botfunc.cpp:18: error: ‘Botirc’ is not a class or namespace
botfunc.cpp:34: error: ‘Botirc’ is not a class or namespace
botfunc.cpp:58: error: ‘Botirc’ is not a class or namespace
...

 Carlo Milanesihttp://
digilander.libero.it/carlmila
Sono riuscito a compilare, vorrei chiedere un ultima domanda visto che
ci siamo, ora ho le implementazioni di funzioni in botfunc.cpp, ma
vorrei implementare la funzione main() in un altro file, tipo
client.cpp, è possibile?
Come posso compilarlo dopo facendo si che il file con l'
implementazioni delle funzioni si collega con la funzione main() nel
file client.cpp?
grazie... ^^