Pointer declaration for member function, C/C++ Programming

Pointer declaration for member function:

Method 1: When Class is not declared as pointer

M n;

void(M::*pf)(int,int)=&M::setxy; (n.*pf)(10,20);

n.setxy(10,20); //is same as prior statement.

Remember in C the syntax is (*function_name)(arguments); in C++ the only difference is the function should be member function of a class therefore the function should be identified by the class with           help      of              scope    operator         ::,             thus             the     syntax   for       C++          is (class_name::*function_name)(argument);



Method 2: When Class is declared as pointer

M *op;




The difference from the first method is the class is also declared as pointer class, in such case the dereferencing operator -> is used (pointer_class_name:_*pointer_function_name)(argument);


The following example will give clear understanding of pointer to members both function members and data member.


class M

{int x, y;


void setxy(int a, int b)




friend int sum(M m);


int sum(M m)

{//Declaring pointer to data member int M::*px;

px=&M::x; int M::*py; py=&M::y;

//Declaring class as pointer

M *pm;


int S,S1,S2;

//Two ways of reading through pointer

S1=m.*px; //object_name.*pointer-to-member function

S2=pm->*py;//pointer-to-object->*pointer-to-member function


//S=m.x+m.y; //is same as prior statement without pointer.

return S;


int main()


M n; void(M::*pf)(int,int)=&M::setxy; (n.*pf)(10,20);

n.setxy(10,20); //is same as prior statement. cout<<"SUM is "<<sum(n)<<"\n";


M *op;





//n.setxy(30,40); //is same as prior statement. cout<<"Sum is "<<sum(n);

return 0;


Posted Date: 9/20/2012 8:03:30 AM | Location : United States

Related Discussions:- Pointer declaration for member function, Assignment Help, Ask Question on Pointer declaration for member function, Get Answer, Expert's Help, Pointer declaration for member function Discussions

Write discussion on Pointer declaration for member function
Your posts are moderated
Related Questions
c program for boardcolouring

Looping Statements The statements usually used for looping are for, do-while, while. The goto statement can be used for looping, but its use is generally avoided as it leads to

Write out pseudocode for a function called "and" that takes two arguments, both booleans, and returns the logical and of the inputs. DO NOT use the logical and operator: instead, w

Create a mathematical number guessing game. Have the user prompt for the number of games that they want to play. Then each game consists of the following rules. a. The computer

Describe spaghetti programming. - Spaghetti programming refers to codes which tend to get tangled and overlapped throughout the program. - It makes a program complex and ana

simple shopping cart

Operation Files 2.1. Your program should open and read the file specified by the first command line argument of the program. 2.2. The first line of the file contains an integer

Write two different arrays. Store the names in it and then compare if both the names entered by the user are the same.