Narzędzia użytkownika

Narzędzia witryny


boost_python

Różnice

Różnice między wybraną wersją a wersją aktualną.

Odnośnik do tego porównania

Both sides previous revision Previous revision
Next revision Both sides next revision
boost_python [2008/04/14 20:35]
kamituel
boost_python [2008/04/14 20:59]
kamituel
Linia 100: Linia 100:
         virtual void metoda ( std::string suffix ) {         virtual void metoda ( std::string suffix ) {
                 this->​get_override("​metoda"​)();​                 this->​get_override("​metoda"​)();​
 +                // Dla kompilatora MSVC należy zamienić powyższą linijkę na:
 +                // this->​get_override("​metoda"​).ptr();​
         }         }
 }; };
Linia 197: Linia 199:
   * Mamy dostęp do biblioteki C++, ale nie mamy do niej źródeł   * Mamy dostęp do biblioteki C++, ale nie mamy do niej źródeł
 W tym ostatnim przypadku jedyne co nam będzie potrzebne to pliki nagłówkowe tej bilioteki i parę minut czasu. W tym ostatnim przypadku jedyne co nam będzie potrzebne to pliki nagłówkowe tej bilioteki i parę minut czasu.
-Weźmy klasy z poprzedniego przykładu, rozdzielmy je na plik nagłówkowy i źródłowy. ​Źródłowy skompilujmy do postaci biblioteki współdzielonej:​+Weźmy klasy z poprzedniego przykładu, rozdzielmy je na plik nagłówkowy i źródłowy. ​ 
 + 
 +Plik nagłówkowy wyglądać może tak: 
 +<code cpp> 
 +class Costam_0 { 
 +        public: 
 +                virtual void metoda ( std::string suffix ) = 0; 
 +                virtual ~Costam_0 (); 
 +}; 
 + 
 +class Costam_A : public Costam_0 { 
 +        public: 
 +                Costam_A();​ 
 +                Costam_A( std::string nazwa );  
 +                virtual void metoda ( std::string suffix );  
 +                std::string daj_nazwe () const; 
 +                void ustaw_nazwe ( const std::string nazwa );  
 +        protected:​ 
 +                std::string nazwa_; 
 +}; 
 + 
 +class Costam_B : public Costam_A { 
 +        public: 
 +                Costam_B();​ 
 +                Costam_B( std::string nazwa ); 
 +                virtual void metoda ( std::string suffix ); 
 +                Costam_B&​ operator+ ( std::string x ); 
 + 
 +                std::string x_; 
 +}; 
 +</​code>​ 
 + 
 +Plik źródłowy skompilujmy do postaci biblioteki współdzielonej:​
 <​code>​ <​code>​
 $ g++ -Wall -shared p2-shared.cpp -o p2-shared.o $ g++ -Wall -shared p2-shared.cpp -o p2-shared.o
boost_python.txt · ostatnio zmienione: 2008/04/16 07:24 przez kamituel