把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  
 