把Python嵌入C++的運(yùn)算符重載的操作步驟詳解
把Python嵌入C++的運(yùn)算符重載中你如果在C++中對(duì)相關(guān)運(yùn)算符重載后,把Boost.Python傳給Python時(shí),你就可以將以下的代碼將Msg類的“+”運(yùn)算符重載,然后通過(guò)“.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++的運(yùn)算符重載中對(duì)于其他的運(yùn)算符重載也可以使用同樣的方法,如下所示。
.def(self - self) // 相當(dāng)于_sub_方法
.def(self * self) // 相當(dāng)于_mul_方法
.def(self /self) // 相當(dāng)于_div_方法
.def(self < self); // 相當(dāng)于_lt_方法
以上就是對(duì)Python嵌入C++的運(yùn)算符重載相關(guān)的內(nèi)容的介紹,望你會(huì)有所收獲。
【編輯推薦】