Newsgroup: it.comp.lang.c++
Titolo: Classe: Separare l'interfaccia e Mascherare la definizione.

Ciao a tutti.
Ho un file MyString.h che definisce una classe MyString con i
prototipi delle funzioni membro come public.
L'altro file MyString.cpp contiene l'include di MyString.h e le
definizioni delle funzioni membro della classe.
In questo modo ho l'interfaccia della classe separata dalla
definizione.
Come faccio a fornire, ad un utente, il file MyString.h inalterato e
il file MyString.cpp in modo "criptato" ? Cos' facendo l'utente puo'
vedere i prototipi delle funzioni membro ma non puo' vedere
l'implementazione del codice.
Grazie e a presto :)

 l'implementazione del codice.
Fornendogli solo i file oggetto compilati per la sua piattaforma o,
eventualmente, raccolti in una libreria (statica o a collegamento dinamico).
PS: Mi fai un autografo per mia cuggina? :-)

 dinamico).
Mi spiegate come si generano i file oggetto compilati? 


con il compilatore...
Hai un ambiente di sviluppo? Su quale piattaforma lavori?
E.

 E.
Lavoro (o meglio Studio), con Dev-C++ per Windows XP.
- Creo un nuovo progetto e inserisco tre file...
/***  Creo il file employee.h *************************/
#include <string>
using std::string;
  class EMPLOYEE {
                 public:
                         EMPLOYEE ();
                         void setName(string);
                         string getName();
                         void setSurname(string);
                         string getSurname();
                         void setSalary(double);
                         double getSalary();
               private:
                         string name;
                         string surname;
                         double salary;
                 };
/*** Creo il file employee.cpp *******************************/
#include "employee.h"
                         EMPLOYEE::EMPLOYEE ()
                            {
                            setName    ("");
                            setSurname ("");
                            setSalary  (0);
                            }
                         void EMPLOYEE::setName(string nome)
                            { name = nome;}
                         string EMPLOYEE::getName()
                            { return name;}
                         void EMPLOYEE::setSurname(string cognome)
                            {surname = cognome;}
                         string EMPLOYEE::getSurname()
                            {return surname; }
                         void EMPLOYEE::setSalary(double stipendio)
                            {
                            if (stipendio < 0)
                              salary = 0;
                            else
                              salary = stipendio;
                            }
                         double EMPLOYEE::getSalary()
                            { return salary; }
/*** Creo il file testClass.cpp ******************************************/
#include <string>
using std::string;
#include <iostream>
using std::cout;
using std::endl;
#include "employee.h"
main()
{
      EMPLOYEE operaio;
      EMPLOYEE impiegato;
      double aux;
      operaio.setName("Mario");
      operaio.setSurname("Rossi");
      operaio.setSalary(900);
      impiegato.setName("Gino");
      impiegato.setSurname("Bello");
      impiegato.setSalary(1100);
      cout << "\nStipendio operaio  : " << operaio.getSalary()   << " Euro" 
<< endl;
      cout << "\nStipendio impiegato: " << impiegato.getSalary() << " Euro" 
<< endl;
      cout << "\nI dipendenti meritano un AUMENTO di STIPENDIO del 10%" << 
endl;
      aux = operaio.getSalary();
      aux += aux * 0.1;
      operaio.setSalary ( aux );
      aux = impiegato.getSalary();
      aux += aux * 0.1;
      impiegato.setSalary ( aux );
      cout << "\nStipendio operaio  : " << operaio.getSalary()   << " Euro" 
<< endl;
      cout << "\nStipendio impiegato: " << impiegato.getSalary() << " Euro" 
<< endl;
cout << "\n";
system ("pause");
return 0;
}
/***************************************************************************/
Con F9 compilo e mando in esecuzione per testare la classe.
Nella cartella contenete il progetto si generano i seguenti files:
Employee.layout
Makefile.win
testClass.o
employee.o
Employee.exe
testClass.cpp
employee.cpp
employee.h
Employee.dev
main
Se voglio passare a qlc la classe EMPLOYEE devo dare il file employee.h ed 
il file employee.cpp
Posso fornire una versione del file employee.cpp compilato o criptato ???
Ho provato ad usare il file employee.o ma qualcosa non funziona... 

 Ho provato ad usare il file employee.o ma qualcosa non funziona... 
Devi proprio dare il file .o, che č compilato (ma non criptato!). Cosa 
non funziona?
E.