Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > C++ > c++ function pointer

Reply
Thread Tools

c++ function pointer

 
 
gary
Guest
Posts: n/a
 
      10-30-2005

On Fri, 28 Oct 2005 15:48:27 -0400
HappyHippy <(E-Mail Removed)> wrote:

> Marco wrote:
> > Hi,
> >
> > I would like implement a class with a method Draw(),
> > .I would like that method Draw() change with another method when the
> > state of class change.
> > I think to use function pointer to do it, but I don't know how use this
> > in a class?
> > Can someone do a example?
> >

>
> You can do something like that:
>
> #include <iostream>
>
>
> class CMYClass
> {
> public:
> enum E_STATE
> {
> E_ST1,
> E_ST2,
> E_ST3
> };
> CMYClass():
> m_pDrawFnc(&CMYClass::draw_S1)
> {
> }
>
> void draw()
> {
> (this->*m_pDrawFnc)();
> }
>
> void changeState(E_STATE eState)
> {
> switch(eState)
> {
> case E_ST1:
> m_pDrawFnc = &CMYClass::draw_S1;
> return;
>
> case E_ST2:
> m_pDrawFnc = &CMYClass::draw_S2;
> return;
>
> case E_ST3:
> m_pDrawFnc = &CMYClass::draw_S3;
> return;
>
> default:
> //invalid argument!
> return;
> }
> }
>
> private:
> void draw_S1()
> {
> std::cout<<"draw_S1"<<std::endl;
> }
> void draw_S2()
> {
> std::cout<<"draw_S2"<<std::endl;
> }
> void draw_S3()
> {
> std::cout<<"draw_S3"<<std::endl;
> }
>
> typedef void (CMYClass::*draw_fnc)();
>
> E_STATE m_eState;
> draw_fnc m_pDrawFnc;
> };
>
> int main()
> {
> CMYClass obj;
> obj.draw();
> obj.changeState(CMYClass::E_ST2);
> obj.draw();
> obj.changeState(CMYClass::E_ST3);
> obj.draw();
>
> return 0;
> }


I think the resolution is still not adequate.
If the collection of states you need is greater than E_STATE, what should you do?
I think using a integer variable or array is simple, every bit of the variable represents a state or simplely the value of the variable represents states

 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
function pointer and pointer to function prashant.khade1623@gmail.com C Programming 3 04-11-2008 07:30 AM
diffrence between "function pointer" and "pointer to a function" murgan C Programming 6 12-21-2005 06:01 AM
Passing pointer to template function as argument to pointer to template function Vijai Kalyan C++ 4 11-08-2005 07:53 PM
pointer to member function and pointer to constant member function Fraser Ross C++ 4 08-14-2004 06:00 PM
function pointer and member function pointer question glen stark C++ 2 10-10-2003 01:41 PM



Advertisments