Quote:
Originariamente inviato da [Kendall]
Nel tuo caso specifico, a chi vuoi nascondere il codice?
Perchè distribuendo l'eseguibile non esponi il codice, così come non lo esponi se distribuisci una dll (nel caso tu volessi creare una collezione di classi da distribuire a terzi per l'utilizzo).
L'unica maniera di rendere leggibile il tuo codice è distribuire direttamente sorgenti e header (come avviene nei progetti open source).
|
E' una cosa puramente didattica, un "capriccio" che voglio togliermi per curiosità. Ipotizziamo ad esempio che io voglia distribuire la mia classe contenente dei metodi di cui voglio nascondere l'implementazione, rendendo esclusivamente visibile il nome della classe, degli attributi e dei metodi (che basterebbe per il loro utilizzo, corredato da commenti). In questo modo, lui potrà riutilizzare i metodi
della mia classe quante volte vorrà, senza tuttavia saperne l'implementazione. Ad esempio, di un certo metodo lui vedrà solo questo:
Codice:
class Classe{
public:
tipo Metodo(tipo parametro);
}
Questo, ovviamente, tramite l'header file, che ha solo i prototipi. Tuttavia, mancando il file .cpp in cui la classe è implementata, l'header deve prendere da qualche parte proprio quel codice di cui necessita, e l'unico modo sarebbe il file .o compilato a partire dal file .cpp della classe (quello con l'implementazione). Sto quindi cercando un modo per poter utilizzare una classe già compilata in qualsiasi programma avendo semplicemente l'header ed il file oggetto. So che ciò potrebbe non essere poi così utile, ma sempre meglio sapere.
Quote:
|
Originariamente inviato da [Daniels118]
Basta che dici al linker dove deve prendere il modulo oggetto e tutto fila liscio. Ovviamente per compilare gli altri moduli devi sempre avere gli header, .o e .h vanno a braccetto.
|
E in che modo potrei fare ciò?