一个函数如何从一个对象到另一个对象执行各种操作

时间:2014-03-13 15:27:59

标签: c++

假设我们有一个类,并且在其中我们有一个函数(例如OnTouchListner),当这个方法调用时,这个类中的任何对象都会做各种事情。
任何人都知道如何解决这个问题 我的问题的真实例子是MFC或任何opreation系统所做的工作 下面的代码是我项目的简单形状和摘要代码

namespace MyOS
{
    namespace GUI
    {
        class CControl
        {
            public :
            void OnTouchListner(void);  //my wrong solution is void(*OnTouchListner)(void);
        };
        class CButton : public CControl
        {
            public :
            ...
        };


    }
    namespace Core
    {
        class CKernel
        {
            private :
            EventListner();
        };

        class CForm
        {
            public :
            CLinkList<GUI::CControl> controls;
            ...
        };

    }
    namespace StandardDialoges
    {
        class CKeyPad : public Core::CForm
        {
            public :
            void Designer(void) {
                /*my wrong solution
                this->btnZ->OnTouchListner = &CKeyPad::btnZ_OnTouch_Listner;
                and call this in EventListner
                */
            }
            GUI::CButton btnZ;
            void btnZ_OnTouch_Listner(void)    {}
        };
    }
}

现在我的问题是当事件列表器检测到诸如ontouch事件之类的新事件时,来自控件的调用相关函数 我认为函数指针是这个问题的解决方案,但现在我认为这是错误的方式 请帮我找到解决问题的方法。
非常感谢。

0 个答案:

没有答案