python_boost学习笔记2,含有自定义构造函数类的封装

用到的函数
boost::python::class_<T>("Tname",init<parameter>)
boost::python::.def(init<parameter>)
#include <string>

#include <sstream>



struct Ctor

{

        Ctor(std::string msg) : mMsg(msg) {} //构造函数

        Ctor(double x,double y) //重载构造函数

        {

                std::stringstream os;

                os << x << ":" << y << std::ends;

                set(os.str());

        }

        void set(std::string msg) { mMsg = msg; }

        std::string greet() { return mMsg; }

        std::string mMsg;

};



#include <boost/python.hpp>

using namespace boost::python;



BOOST_PYTHON_MODULE(boost_eg)

{
        //boost::python::class_<T>("Tname",init<parameter>) 
        class_<Ctor>("Ctor", init<std::string>()) //导出含有构造函数的类  

                .def(init<double, double>()) //导入重载的构造函数

                .def("greet", &Ctor::greet) //导入成员函数

                .def("set", &Ctor::set)

                ;



}

python代码

import boost_eg
c1 = boost_eg.Ctor("Bonjour") #使用第一个构造函数创建对象
print (c1.greet())
c2 = boost_eg.Ctor(3.141592654, 1.0) #使用第二个构造函数创建对象
print (c2.greet())

运行结果

Bonjour
3.14159:1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值