No subject


Tue Oct 14 00:29:20 CEST 2008


#include <boost/python/class.hpp>
#include <boost/python/module.hpp>
#include <boost/ref.hpp>
#include <boost/utility.hpp>
using namespace boost::python;

class A
{
public:
	A() : x(0) {}
#if 0
	virtual double get() = 0;
	virtual double get1(double x) = 0;
#else
	double get() { return x; }
	double get1(double x) { return x; }
#endif
private:
	double x;
};


class AA : public A
{
public:
	AA() : A() {}
	double get() { return 0; }
	double get1(double x) { return x; }
	double get2(double x, double y) { return y+x; }
};


BOOST_PYTHON_MODULE_INIT(AA)
{
      module m("AA");
	  m.add(
#if 0
	      class_<A, boost::noncopyable>("A")
#else
	      class_<A>("A")
#endif
	      .def("get", &A::get)
	      .def("get1", &A::get1)
	      );
	  m.add(
	      class_<AA, bases<A> >("AA")
	      .def_init(args<>())
	      .def("get2", &AA::get2)
	      );
}


Min Xu






More information about the Cplusplus-sig mailing list