Solved

Function pointer not working too well...

Posted on 2009-07-07
5
175 Views
Last Modified: 2012-05-07
Hi,

Please see the code below - no message box is showing despite me asking the computer very nicely... :(

Thanks,
Uni
template<typename TListenerClassName>
class CEventRaiser{
public:
	typedef void (TListenerClassName::*ListenerClassMember)();
	void initialiseEventRaiser(TListenerClassName *aListenerClassName, ListenerClassMember aListenerClassMember){
		listenerClassName=aListenerClassName;
		listenerClassMember=aListenerClassMember;
	}
	void raiseEvent(){
		listenerClassName->*listenerClassMember;
	}
private:
	TListenerClassName *listenerClassName;
	ListenerClassMember listenerClassMember;
};
 
 
class CSample{
public:
	void init(){
		eventRaiser.initialiseEventRaiser(this, &CSample::listener);
		eventRaiser.raiseEvent();
	}
	void listener(){
		MessageBox(0, L"H", L"", 0);
	}
	CEventRaiser<CSample> eventRaiser;
};
 
 
int main(){
	CSample sample;
	sample.init();
	...
}

Open in new window

0
Comment
Question by:Unimatrix_001
  • 3
5 Comments
 
LVL 40

Accepted Solution

by:
mrjoltcola earned 500 total points
ID: 24799759
Try calling it like:

void raiseEvent(){
                (listenerClassName->*listenerClassMember)();
        }
0
 
LVL 3

Author Comment

by:Unimatrix_001
ID: 24799773
Ooops...
0
 
LVL 3

Author Closing Comment

by:Unimatrix_001
ID: 31600903
Thank you. :)
0
 
LVL 40

Expert Comment

by:evilrix
ID: 24801257
heh. I guess I went to be a little too early last night Uri :)
0
 
LVL 3

Author Comment

by:Unimatrix_001
ID: 24803742
I went to bed waaay too late. ;)
0

Featured Post

Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
Quicksort a dynamic deque 33 79
basic hardware to learn oop advanced design patterns 3 110
Header Errors LNK2019, LNK1120 - Unresolved Externals 4 242
Outlook 13 78
This article shows you how to optimize memory allocations in C++ using placement new. Applicable especially to usecases dealing with creation of large number of objects. A brief on problem: Lets take example problem for simplicity: - I have a G…
Basic understanding on "OO- Object Orientation" is needed for designing a logical solution to solve a problem. Basic OOAD is a prerequisite for a coder to ensure that they follow the basic design of OO. This would help developers to understand the b…
The viewer will learn additional member functions of the vector class. Specifically, the capacity and swap member functions will be introduced.
The viewer will learn how to clear a vector as well as how to detect empty vectors in C++.

685 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question