Newsgroup: it.comp.lang.c++
Titolo: Compilare Header.

Ho una semplice domanda:
Se ho un header con la funzione pippo() posso fare in modo che qualcuno usi
il mio header includendolo nel sorgente, ma senza aver la possibilità di
vedere il codice?
Grazie
Luigi

 wrote in message
news:tbp17.2300$eB4....@news.infostrada.it...

Gli devi dare, oltre all'header, il file obj (o una lib) compilato con lo stesso
compilatore e gli stessi settaggi che usa lui.
--
Andrea Ferro
---------
Brainbench C++ Master. Scored higher than 97% of previous takers
Scores: Overall 4.46, Conceptual 5.0, Problem-Solving 5.0
More info 
http://www.brainbench.com/transcript.jsp?pid=2522556

 compilatore e gli stessi settaggi che usa lui.
Ma l'header lo può vedere no?

vedere il codice?
A patto che tu fornisca la versione compilata del modulo
.cpp con l'implementazione di pippo() e nel .h includi solo
il prototipo della funzione.
Gli header (vedi il famoso windows.h) a volte si usano
proprio per questo, per fornire l'interfaccia a funzioni
compilate in librerie.
--
CyberWalkie - walkietalkie(at)
libero.it

 wrote in message
news:hYB17.5950$eB4.1...@news.infostrada.it...

Certo. Lo scopo della separazione fra file .hpp e file .cpp e' proprio mettere
nei primi cio' che l'utente deve vedere (l'interfaccia) e nei secondi cio' che
invece riguarda lo sviluppatore della classe (l'implementazione).


 Certo.
E infatti io NON voglio renderlo disponibili.
Grazie

E infatti io NON voglio renderlo disponibili.
Hmmm... fammi capire... uno compra da te la tua libreria
e poi cosa ci fa senza nessun header ?
Che funzioni chiama ? Che classi puo' istanziare ?
E' una libreria che serve solo ad occupare spazio su disco ?
Spero sia molto economica :-)
Andrea
--
Andrea Griffini, Programmer
http://www.netservers.com/~agriff

 vedere il codice?
Nell'header (.h) non si mette il codice della funzione pippo() ma solo il
suo prototipo (1 linea).
Il codice vero e proprio va messo nel file sorgente (.cpp), che  tu
compilerai e fornirai in formato
oggetto (.obj) o libreria (.lib).
Se poi non vuoi che si veda manco il prototipo di funzione (per quaunque
oscuro motivo che al momento
[e anche nei prossimi] mi sfugge) allora devi semplicemente consegnare un
solo file, il .h, vuoto, cioè contenente nessuna linea.
In questo modo l'utente non vedrà la tua funzione e come si usa, quindi
manco la utilizzerà, tu non vedrai il tuo codice e non sarai
neanche tenuto a scriverlo (difatti il .cpp non esiste in questa
"soluzione"), e il compilatore ignorerà tutta la questione processando
un file vuoto e ignorandolo, quindi senza nessun messaggio di errore.
Chiedo conferma agli altri di essere stato esaustivo ;-).
--
----------
Lello Mele
HOMEPAGE:
http://www.lellomele.it
eMAIL:
v...@libero.it
me...@programmazione.it
-------------
"Esistono due modi per elaborare il progetto di un software.
 Il primo consiste nel renderlo semplice al punto tale che non
 manifesti lacune evidenti. Il secondo consiste nel renderlo
 complicato al punto tale che non manifesti lacune evidenti.
 Il primo metodo e' di gran lunga piu' difficile." [C.A.R. Hoare]

 oggetto (.obj) o libreria (.lib).
Voglio fare proprio questo, cioč rendere disponibile solo il prototipo per
far capire com'č la funzione, ma poi l'implementazione non voglio che sia
vista.
Forse mi sono spiegato super male cmq volevo dire questo