Using method function pointers in C++
 
Hello friends,
I am implementing something like
PM
|------------------------------------------------------
|                         |                           |
|              | ------- -|       send_if( data) |
|              |       M |                           |
|              |           |                           |
|              | --------  |              |            |
|                          |              |            |
-----------------------------------------|-------------
                                         |
PS                                     |
|--------------------------------------------------------------
|                                    |                         |
|                          | ------- | receive_if( data)  |
|                          |     S  |                         |
|                          |         |                         |
|                          | --------|                          |
|                                    |                          |
------------------- --------------------------------------------
In this implementation, control flow starts with M's executeM() method.
executeM() is supposed to pass data to interface, say send_if( char *).
send_if( char *data); passes on this data to SInterface
send_if( char *data)
{
receive_if( data);
}
receive_if( ) collects this data and passes on to S by
receive_if( char * data)
{
executeS( data);
}
this will transfer data to S and S can display or do whatever it wants.
********************
The class structure which i have created for this is :
1. File named: M_if.h
class M_if
{
public:
void send_if( char *);
};
*****
2. File: M.h
class M
{
char *data;
public:
M( )
{
data = new char[5];
data = "C++";
}
void executeM()
{
funcPtr_sendIf( data);
}
/// A fucntion pointer to store send_if() address.
void ( *funcPtr_sendIf) ( char *);
};
class PM: public M_if
{
public:
M *m;
PM() // constructor
{
m = new M();
m-> funcPtr_sendIf = &send_if;
}
//// Send interface present with PM
void send_if()
{
funcPtr_receiveIf( data);
}
void ( *funcPtr_receiveIf) ( char *);
};
******
3. File named: S_if.h
class S_if
{
public:
void receive_if( char *);
};
*****
2. File: S.h
class S
{
char *data;
public:
S() { } /// constructor
//// S Execution function, to display data
void executeS( char * data)
{
cout << " Data is : " << data;
}
};
class PS: public S_if
{
public:
S *s;
PS()
{
s = new S();
}
void receive_if( char * data)
{
s->executeS( data);
}
};
******
4. TopM
class TopM
{
PM *pm;
PS *ps;
public:
TopM ()
{
pm = new PM();
ps = new PS();
//// Interconnecting by assigning function pointer
pm->funcPtr_receiveIf = &(ps->receive_if);
}
};
************************************************
Of course, it doesn't get compiled.
I went through function pointer implementations and whatever i could
understand was what i have done in this example.
Please guide in this journey through method function pointer in C++