{"id":20530,"date":"2022-11-10T00:03:34","date_gmt":"2022-11-09T18:33:34","guid":{"rendered":"https:\/\/jassweb.com\/solved\/solved-what-does-void-m-pfintint-do-closed\/"},"modified":"2022-11-10T00:03:34","modified_gmt":"2022-11-09T18:33:34","slug":"solved-what-does-void-m-pfintint-do-closed","status":"publish","type":"post","link":"https:\/\/jassweb.com\/solved\/solved-what-does-void-m-pfintint-do-closed\/","title":{"rendered":"[Solved] What does void (M :: *pf)(int,int) = &#038;M :: set_xy; do? [closed]"},"content":{"rendered":"<p> [ad_1]<br \/>\n<\/p>\n<div id=\"answer-66041273\" class=\"answer js-answer accepted-answer js-accepted-answer\" data-answerid=\"66041273\" data-parentid=\"66040711\" data-score=\"1\" data-position-on-page=\"1\" data-highest-scored=\"1\" data-question-has-accepted-highest-score=\"1\" itemprop=\"acceptedAnswer\" itemscope itemtype=\"https:\/\/schema.org\/Answer\">\n<div class=\"post-layout\">\n<div class=\"votecell post-layout--left\"><\/div>\n<div class=\"answercell post-layout--right\">\n<div class=\"s-prose js-post-body\" itemprop=\"text\">\n<p>What you have there is a function pointer. But not a normal one, a member function pointer. There a few things different in member function pointers when compared to normal ones.<\/p>\n<p><strong>1. It states where the function comes from (which class\/ struct holds it).<\/strong> <br \/>\nIn your example <code>void(M :: *pf(int, int)=&amp;M :: set_xy;<\/code>, <code>M<\/code> is the class which contains the function. So because of this, we state that we are storing a pointer of a member function which is from class <code>M<\/code>. Hence the <code>M :: *pf<\/code> part.<\/p>\n<p><strong>2. You provide the address of the function to the pointer.<\/strong> <br \/>\nC++ does not allow you to just pass a function to the pointer like in normal functions. For member function pointers we need to pass in the address of it. Thats the reason for the <code>&amp;<\/code> operator in <code>=&amp;M :: set_xy;<\/code>.<\/p>\n<p><strong>3. You need a instantiated object variable to call the function.<\/strong> <br \/>\nFor function pointers, it needs the current state of the parent object in order to call it. Here what happens is something like we use the pointer as the function name when calling. That&#8217;s why we use this: <code>(op-&gt;*pf)(30,40);<\/code>. The reason why we dereference is because the member function pointer contains the address of the function, not the function pointer itself. By dereferencing we get the function pointer.<\/p>\n<\/p><\/div>\n<div class=\"mt24\"><\/div>\n<\/div>\n<p>            <span class=\"d-none\" itemprop=\"commentCount\"><\/span> <\/p><\/div>\n<\/div>\n<p>[ad_2]<\/p>\n<p>solved What does void (M :: *pf)(int,int) = &#038;M :: set_xy; do? [closed] <\/p>\n","protected":false},"excerpt":{"rendered":"<p>[ad_1] What you have there is a function pointer. But not a normal one, a member function pointer. There a few things different in member function pointers when compared to normal ones. 1. It states where the function comes from (which class\/ struct holds it). In your example void(M :: *pf(int, int)=&amp;M :: set_xy;, M &#8230; <a title=\"[Solved] What does void (M :: *pf)(int,int) = &#038;M :: set_xy; do? [closed]\" class=\"read-more\" href=\"https:\/\/jassweb.com\/solved\/solved-what-does-void-m-pfintint-do-closed\/\" aria-label=\"More on [Solved] What does void (M :: *pf)(int,int) = &#038;M :: set_xy; do? [closed]\">Read more<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[320],"tags":[324,519,712],"class_list":["post-20530","post","type-post","status-publish","format-standard","hentry","category-solved","tag-c","tag-class","tag-pointers"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>[Solved] What does void (M :: *pf)(int,int) = &amp;M :: set_xy; do? [closed] - JassWeb<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/jassweb.com\/solved\/solved-what-does-void-m-pfintint-do-closed\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"[Solved] What does void (M :: *pf)(int,int) = &amp;M :: set_xy; do? [closed] - JassWeb\" \/>\n<meta property=\"og:description\" content=\"[ad_1] What you have there is a function pointer. But not a normal one, a member function pointer. There a few things different in member function pointers when compared to normal ones. 1. It states where the function comes from (which class\/ struct holds it). In your example void(M :: *pf(int, int)=&amp;M :: set_xy;, M ... Read more\" \/>\n<meta property=\"og:url\" content=\"https:\/\/jassweb.com\/solved\/solved-what-does-void-m-pfintint-do-closed\/\" \/>\n<meta property=\"og:site_name\" content=\"JassWeb\" \/>\n<meta property=\"article:published_time\" content=\"2022-11-09T18:33:34+00:00\" \/>\n<meta name=\"author\" content=\"Kirat\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Kirat\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/jassweb.com\/solved\/solved-what-does-void-m-pfintint-do-closed\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/jassweb.com\/solved\/solved-what-does-void-m-pfintint-do-closed\/\"},\"author\":{\"name\":\"Kirat\",\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31\"},\"headline\":\"[Solved] What does void (M :: *pf)(int,int) = &#038;M :: set_xy; do? [closed]\",\"datePublished\":\"2022-11-09T18:33:34+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/jassweb.com\/solved\/solved-what-does-void-m-pfintint-do-closed\/\"},\"wordCount\":229,\"publisher\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#organization\"},\"keywords\":[\"c++\",\"class\",\"pointers\"],\"articleSection\":[\"Solved\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/jassweb.com\/solved\/solved-what-does-void-m-pfintint-do-closed\/\",\"url\":\"https:\/\/jassweb.com\/solved\/solved-what-does-void-m-pfintint-do-closed\/\",\"name\":\"[Solved] What does void (M :: *pf)(int,int) = &M :: set_xy; do? [closed] - JassWeb\",\"isPartOf\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#website\"},\"datePublished\":\"2022-11-09T18:33:34+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/jassweb.com\/solved\/solved-what-does-void-m-pfintint-do-closed\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/jassweb.com\/solved\/solved-what-does-void-m-pfintint-do-closed\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/jassweb.com\/solved\/solved-what-does-void-m-pfintint-do-closed\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/jassweb.com\/solved\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"[Solved] What does void (M :: *pf)(int,int) = &#038;M :: set_xy; do? [closed]\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/jassweb.com\/solved\/#website\",\"url\":\"https:\/\/jassweb.com\/solved\/\",\"name\":\"JassWeb\",\"description\":\"Build High-quality Websites\",\"publisher\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/jassweb.com\/solved\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/jassweb.com\/solved\/#organization\",\"name\":\"Jass Web\",\"url\":\"https:\/\/jassweb.com\/solved\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/jassweb.com\/wp-content\/uploads\/2021\/02\/jass-website-logo-1.png\",\"contentUrl\":\"https:\/\/jassweb.com\/wp-content\/uploads\/2021\/02\/jass-website-logo-1.png\",\"width\":693,\"height\":132,\"caption\":\"Jass Web\"},\"image\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31\",\"name\":\"Kirat\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1776403586\",\"contentUrl\":\"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1776403586\",\"caption\":\"Kirat\"},\"sameAs\":[\"http:\/\/jassweb.com\"],\"url\":\"https:\/\/jassweb.com\/solved\/author\/jaspritsinghghumangmail-com\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"[Solved] What does void (M :: *pf)(int,int) = &M :: set_xy; do? [closed] - JassWeb","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/jassweb.com\/solved\/solved-what-does-void-m-pfintint-do-closed\/","og_locale":"en_US","og_type":"article","og_title":"[Solved] What does void (M :: *pf)(int,int) = &M :: set_xy; do? [closed] - JassWeb","og_description":"[ad_1] What you have there is a function pointer. But not a normal one, a member function pointer. There a few things different in member function pointers when compared to normal ones. 1. It states where the function comes from (which class\/ struct holds it). In your example void(M :: *pf(int, int)=&amp;M :: set_xy;, M ... Read more","og_url":"https:\/\/jassweb.com\/solved\/solved-what-does-void-m-pfintint-do-closed\/","og_site_name":"JassWeb","article_published_time":"2022-11-09T18:33:34+00:00","author":"Kirat","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Kirat","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/jassweb.com\/solved\/solved-what-does-void-m-pfintint-do-closed\/#article","isPartOf":{"@id":"https:\/\/jassweb.com\/solved\/solved-what-does-void-m-pfintint-do-closed\/"},"author":{"name":"Kirat","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31"},"headline":"[Solved] What does void (M :: *pf)(int,int) = &#038;M :: set_xy; do? [closed]","datePublished":"2022-11-09T18:33:34+00:00","mainEntityOfPage":{"@id":"https:\/\/jassweb.com\/solved\/solved-what-does-void-m-pfintint-do-closed\/"},"wordCount":229,"publisher":{"@id":"https:\/\/jassweb.com\/solved\/#organization"},"keywords":["c++","class","pointers"],"articleSection":["Solved"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/jassweb.com\/solved\/solved-what-does-void-m-pfintint-do-closed\/","url":"https:\/\/jassweb.com\/solved\/solved-what-does-void-m-pfintint-do-closed\/","name":"[Solved] What does void (M :: *pf)(int,int) = &M :: set_xy; do? [closed] - JassWeb","isPartOf":{"@id":"https:\/\/jassweb.com\/solved\/#website"},"datePublished":"2022-11-09T18:33:34+00:00","breadcrumb":{"@id":"https:\/\/jassweb.com\/solved\/solved-what-does-void-m-pfintint-do-closed\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/jassweb.com\/solved\/solved-what-does-void-m-pfintint-do-closed\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/jassweb.com\/solved\/solved-what-does-void-m-pfintint-do-closed\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/jassweb.com\/solved\/"},{"@type":"ListItem","position":2,"name":"[Solved] What does void (M :: *pf)(int,int) = &#038;M :: set_xy; do? [closed]"}]},{"@type":"WebSite","@id":"https:\/\/jassweb.com\/solved\/#website","url":"https:\/\/jassweb.com\/solved\/","name":"JassWeb","description":"Build High-quality Websites","publisher":{"@id":"https:\/\/jassweb.com\/solved\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/jassweb.com\/solved\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/jassweb.com\/solved\/#organization","name":"Jass Web","url":"https:\/\/jassweb.com\/solved\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/logo\/image\/","url":"https:\/\/jassweb.com\/wp-content\/uploads\/2021\/02\/jass-website-logo-1.png","contentUrl":"https:\/\/jassweb.com\/wp-content\/uploads\/2021\/02\/jass-website-logo-1.png","width":693,"height":132,"caption":"Jass Web"},"image":{"@id":"https:\/\/jassweb.com\/solved\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31","name":"Kirat","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/person\/image\/","url":"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1776403586","contentUrl":"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1776403586","caption":"Kirat"},"sameAs":["http:\/\/jassweb.com"],"url":"https:\/\/jassweb.com\/solved\/author\/jaspritsinghghumangmail-com\/"}]}},"_links":{"self":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/posts\/20530","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/comments?post=20530"}],"version-history":[{"count":0,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/posts\/20530\/revisions"}],"wp:attachment":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/media?parent=20530"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/categories?post=20530"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/tags?post=20530"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}