The pointer-to-member operators ->* and .* group left-to-right
Example of Pointer to Member Operators:
Example1: Pointer to member data
Example2: Pointer to member function
Example of Pointer to Member Operators:
Example1: Pointer to member data
#include<cstdio> class Test { public: int x; Test():x(5){} void display() { printf("x:%d\n",x); } }; int main() { Test obj; Test *objPtr=&obj; //pointer to object "obj" int Test::*p = &Test::x; //p is a pointer to member x of Test. obj.display(); // output:5 obj.*p=7; //modify the content of x by using pointer p obj.display(); // output:7 objPtr->*p=10; //modify the content of x by using pointer p accessed by a pointer points to an object "obj". obj.display(); // output:10 }
Example2: Pointer to member function
#include<cstdio> class Test { public: int x; Test():x(5){} void display() { printf("x:%d\n",x); } }; int main() { Test obj; Test *objPtr=&obj; //pointer to object "obj" void (Test::*ptr_display)(); ptr_display = &Test::display; obj.display(); //calling display function by object (obj.*ptr_display)(); //calling display function by pointer to member function (objPtr->*ptr_display)(); //calling display function by pointer to member function using object pointer }
No comments :
Post a Comment