自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

把Python嵌入C++中類的成員屬性的內(nèi)容介紹

開發(fā) 后端
你如果想對(duì)Python嵌入C++中類的成員屬性的相關(guān)實(shí)際操作有所了解的話,你就可以點(diǎn)擊以下的文章對(duì)其相關(guān)的實(shí)際應(yīng)用有所了解。

在C++中類的相關(guān)成員能使用關(guān)鍵字去聲明為不一樣的屬性。但是在Python中則會(huì)依靠類的相關(guān)屬性的命名的方式。以下的文章就是介紹把Python嵌入C++中類的成員屬性的相關(guān)實(shí)際操作方案的介紹。

把Python嵌入C++中類的成員屬性

在C++中類的相關(guān)成員能使用關(guān)鍵字去聲明為不一樣的屬性。但是在Python中則會(huì)依靠類的相關(guān)屬性的命名的方式。使用Boost.Python可以將其C++中類成員的屬性傳遞給Python。如下所示代碼使用Boost.Python來處理類成員的屬性。將BOOST_PYTHON_MODULE中的代碼改為如下所示。

 

  1. BOOST_PYTHON_MODULE(Message)  
  2. {  
  3. class_<Message>("Message", init<std::string>())  
  4. .def("set", &Message::set)  
  5. .def("get", &Message::get)  
  6. .def_readwrite("msg", &Message::msg);  
  7. ;  
  8. }   

 

此處將Message類中的成員msg設(shè)置為可讀寫,還可以使用“.def_readonly”將其設(shè)置為只讀屬性。對(duì)于類中的私有成員還可以使用“.add_property”將其操作函數(shù)設(shè)置為Python類中的屬性。如下代碼使用“.add_property”對(duì)私有成員進(jìn)行操作。

 

  1. BOOST_PYTHON_MODULE(Message)  
  2. {  
  3. class_<Message>("Message",init<std::string>())  
  4. .add_property("msg",&Message::get,&Message::set);  
  5. }  

 

以下代碼在Python中使用編譯好的Message模塊。

 

  1. >>> import Message  
  2. >>> s = Message.Message('hi')  
  3. >>> s.msg  
  4. 'hi'  
  5. >>> s.msg = 'boot' 
  6. >>> s.msg  
  7. 'boot'  

 

4.類的繼承

C++中類的繼承關(guān)系也可以通過Boost.Python反映到Python模塊中。以下代碼將父類和子類分別導(dǎo)入到Python模塊中。以下就是對(duì)Python嵌入C++中類的成員屬性

 

  1. #include <string.h> 
  2. #include <iostream.h> 
  3. #include <boost/python.hpp> 
  4. using namespace boost::python;  
  5. #pragma comment(lib, "boost_python.lib")  
  6. class Message  
  7. {  
  8. public:  
  9. std::string msg;  
  10. Message(std::string m)  
  11. {  
  12. mmsg = m;  
  13. }  
  14. void set(std::string m)  
  15. {  
  16. mmsg = m;  
  17. }  
  18. std::string get()  
  19. {  
  20. return msg;  
  21. }  
  22. };  
  23. class Msg:public Message  
  24. {  
  25. public:  
  26. int count;  
  27. Msg(std::string m):Message(m)  
  28. {  
  29. }  
  30. void setcount(int n)  
  31. {  
  32. count = n;  
  33. }  
  34. int getcount()  
  35. {  
  36. return count;  
  37. }  
  38. };  
  39. BOOST_PYTHON_MODULE(Message)  
  40. {  
  41. class_<Message>("Message",init<std::string>())  
  42. .add_property("msg",&Message::get,&Message::set);  
  43. class_<Msg, bases<Message> >("Msg",init<std::string>())  
  44. .def("setcount", &Msg::setcount)  
  45. .def("getcount", &Msg::getcount);  

 

 以上就是對(duì)Python嵌入C++中類的成員屬性相關(guān)的內(nèi)容的介紹,望你會(huì)有所收獲。

【編輯推薦】

  1. Python嵌入C實(shí)例的相關(guān)具體解析
  2. 把Python嵌入C/C++模塊與函數(shù)的實(shí)際操作步驟介紹
  3. 把Python嵌入C/C++模塊與函數(shù)的操作步驟介紹
  4. 把Python嵌入C/C++元組操作的具體以應(yīng)用方案介紹
  5. Python嵌入C/C++(較低層次嵌入)時(shí)所需用到的函數(shù)
責(zé)任編輯:佚名 來源: 互聯(lián)網(wǎng)
相關(guān)推薦

2010-01-19 18:35:12

靜態(tài)成員

2010-03-26 11:00:55

Python嵌入CC++

2010-03-24 12:45:00

Python 嵌入

2010-03-24 10:06:37

Python嵌入C++

2024-02-22 18:07:17

C++靜態(tài)成員代碼

2010-03-26 10:46:20

Python嵌入CC++

2010-02-01 17:31:06

C++類成員

2010-03-26 11:00:55

Python嵌入CC++

2010-01-18 18:04:28

靜態(tài)成員

2010-03-26 16:17:24

Python嵌入

2010-01-15 18:35:25

C++的類

2010-03-26 10:05:22

Python嵌入CC++

2010-03-26 09:48:43

Python嵌入C++

2011-06-21 10:17:41

c++內(nèi)存模型

2010-01-18 17:57:02

靜態(tài)數(shù)據(jù)

2010-01-21 13:33:44

C++基類

2010-03-26 12:54:27

Python嵌入C++

2009-05-26 09:31:00

C++重載覆蓋

2021-06-18 12:30:36

C++函數(shù)指針編程語言

2011-07-20 15:58:53

C++引用
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)