把Python嵌入C++的运算符重载的操作步骤详解
把Python嵌入C++的运算符重载中你如果在C++中对相关运算符重载后,把Boost.Python传给Python时,你就可以将以下的代码将Msg类的“+”运算符重载,然后通过“.def(self + self)”传递给Python。
class Msg:public Message { public: int count; Msg(std::string m):Message(m) { } void setcount(int n) { count = n; } int getcount() { return count; } int operator+ (Msg x) const { int r; r = count + x.count; return r; } }; BOOST_PYTHON_MODULE(Message) { class_<Message>("Message",init<std::string>()) .add_property("msg",&Message::get,&Message::set); class_<Msg, bases<Message> >("Msg",init<std::string>()) .def("setcount", &Msg::setcount) .def("getcount", &Msg::getcount) .def(self + self); }
把Python嵌入C++的运算符重载中对于其他的运算符重载也可以使用同样的方法,如下所示。
.def(self - self) // 相当于_sub_方法
.def(self * self) // 相当于_mul_方法
.def(self /self) // 相当于_div_方法
相关推荐
mieleizhi0 2019-11-07
wbczyh 2019-11-02
ppppl 2010-03-17
choupiaoyi 2017-10-11
ephesians 2016-08-24
peterlee 2017-05-04
wztwzt 2019-04-07
文山羊 2015-08-19
Winterto0 2017-08-27
HeyShHeyou 2019-04-26
小金屋 2015-06-01
uglygirl 2015-05-28
chenmingwei 2009-09-04
dgdafas 2009-08-31
ARTELE 2009-08-12
fundebug 2019-03-29
PHP100 2019-03-27