{"id":693,"date":"2023-04-03T10:20:48","date_gmt":"2023-04-03T02:20:48","guid":{"rendered":"http:\/\/www.inhhh.com\/blog\/?p=693"},"modified":"2023-04-03T10:20:48","modified_gmt":"2023-04-03T02:20:48","slug":"c-%e5%87%bd%e6%95%b0%e6%8c%87%e9%92%88%e5%9c%a8%e7%b1%bb%e5%86%99%e6%b3%95%e5%af%b9%e6%af%94","status":"publish","type":"post","link":"http:\/\/www.inhhh.com\/blog\/?p=693","title":{"rendered":"C ++\u51fd\u6570\u6307\u9488\u5728\u7c7b\u5199\u6cd5\u5bf9\u6bd4"},"content":{"rendered":"\n<p><\/p>\n\n\n\n<p>\u60c5\u51b5\u4e00\u3001\u51fd\u6570\u6307\u9488\u4e0d\u4f7f\u7528\u7c7b\u7684\u5199\u6cd5<br>&#8211;\u6587\u4ef6main.cpp<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>#include &lt;iostream>\n#include &lt;string>\n\ntypedef void(*function)();\nfunction assignPtr;\nstd::string name;\n    \nvoid Test();\nvoid morning();\nvoid say(std::string a);\n\nvoid Test() {assignPtr = morning;}\nvoid morning() {std::cout &lt;&lt;\"Good morning,\" &lt;&lt; name &lt;&lt; std::endl;}\nvoid say(std::string a) {name = a; assignPtr();};\n\n\nint main() {\n    Test();\n    say(\"Miguel\");\n}<\/code><\/pre>\n\n\n\n<p>\u8fd0\u884c\u7ed3\u679c\uff1a<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"538\" height=\"140\" src=\"http:\/\/www.inhhh.com\/blog\/wp-content\/uploads\/2023\/04\/image.png\" alt=\"\" class=\"wp-image-694\" srcset=\"http:\/\/www.inhhh.com\/blog\/wp-content\/uploads\/2023\/04\/image.png 538w, http:\/\/www.inhhh.com\/blog\/wp-content\/uploads\/2023\/04\/image-300x78.png 300w\" sizes=\"auto, (max-width: 538px) 100vw, 538px\" \/><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<p>\u60c5\u51b5\u4e8c\u3001\u51fd\u6570\u6307\u9488\u4f7f\u7528\u7c7b\u7684\u5199\u6cd5<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>#include &lt;iostream>\n#include &lt;string>\n\nclass Test {\n  public:\n    \n    Test() {assignPtr = &amp;Test::morning;}\n    void say(std::string a) {name = a; (this->*assignPtr)();};\n  private:\n    typedef void(Test::*function)();\n    void morning() {std::cout &lt;&lt;\"Good morning,\" &lt;&lt; name &lt;&lt; std::endl;}\n\n    function assignPtr;\n    std::string name;\n};\n\nint main() {\n    Test a;\n    a.say(\"Miguel\");\n}<\/code><\/pre>\n\n\n\n<p>\u8fd0\u884c\u7ed3\u679c\uff1a<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"556\" height=\"170\" src=\"http:\/\/www.inhhh.com\/blog\/wp-content\/uploads\/2023\/04\/image-1.png\" alt=\"\" class=\"wp-image-695\" srcset=\"http:\/\/www.inhhh.com\/blog\/wp-content\/uploads\/2023\/04\/image-1.png 556w, http:\/\/www.inhhh.com\/blog\/wp-content\/uploads\/2023\/04\/image-1-300x92.png 300w\" sizes=\"auto, (max-width: 556px) 100vw, 556px\" \/><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<p>\u4e3b\u8981\u533a\u522b\u5728\u4e8e<\/p>\n\n\n\n<p>\u5728\u7c7b\u4e2d\u9700\u8981\u6b63\u786e\u7684\u4f7f\u7528\u7c7b\u578b<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>typedef void(Test::*function)();\r\n\u7136\u540e\u5728\u521b\u5efa\u6307\u9488\u548c\u8c03\u7528\u6307\u9488\u65f6\u90fd\u8c03\u6574\u8bed\u6cd5\u3002<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>Test() {assignPtr = &amp;Test::morning;} \/\/ Get pointer-to-member\r\nvoid say(std::string a) {name = a; (this->*assignPtr)();};  \/\/ Use pointer-to-member<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>\u60c5\u51b5\u4e00\u3001\u51fd\u6570\u6307\u9488\u4e0d\u4f7f\u7528\u7c7b\u7684\u5199\u6cd5&#8211;\u6587\u4ef6main.cpp \u8fd0\u884c\u7ed3\u679c\uff1a \u60c5\u51b5\u4e8c\u3001\u51fd\u6570\u6307\u9488\u4f7f\u7528\u7c7b\u7684\u5199\u6cd5 \u8fd0<\/p>\n<div class=\"more-link\">\n\t\t\t\t <a href=\"http:\/\/www.inhhh.com\/blog\/?p=693\" class=\"link-btn theme-btn\"><span>Read More <\/span> <i class=\"fa fa-caret-right\"><\/i><\/a>\n\t\t\t<\/div>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-693","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/www.inhhh.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/693","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.inhhh.com\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.inhhh.com\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.inhhh.com\/blog\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.inhhh.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=693"}],"version-history":[{"count":1,"href":"http:\/\/www.inhhh.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/693\/revisions"}],"predecessor-version":[{"id":696,"href":"http:\/\/www.inhhh.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/693\/revisions\/696"}],"wp:attachment":[{"href":"http:\/\/www.inhhh.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=693"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.inhhh.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=693"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.inhhh.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=693"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}