码迷,mamicode.com
首页 > 其他好文 > 详细

类函数成员指针

时间:2015-05-26 15:56:52      阅读:108      评论:0      收藏:0      [点我收藏+]

标签:

// The contents of this file are in the public domain. See LICENSE_FOR_EXAMPLE_PROGRAMS.txt

/*
    This is an example illustrating the use of the member_function_pointer object 
    from the dlib C++ Library.

*/


#include <iostream>
#include <dlib/member_function_pointer.h>

using namespace dlib;
using namespace std;

// ----------------------------------------------------------------------------------------

class example_object 
{
public:

    void do_something (
    )
    {
        cout << "hello world" << endl;
    }

    void print_this_number (
        int num
    )
    {
        cout << "number you gave me = " << num << endl;
    }

};

// ----------------------------------------------------------------------------------------

int main()
{
    // create a pointer that can point to member functions that take no arguments
    member_function_pointer<> mfp1;

    // create a pointer that can point to member functions that take a single int argument
    member_function_pointer<int> mfp2;

    example_object obj;

    // now we set the mfp1 pointer to point to the member function do_something() 
    // on the obj object.
    mfp1.set(obj, &example_object::do_something);


    // now we set the mfp1 pointer to point to the member function print_this_number() 
    // on the obj object.
    mfp2.set(obj, &example_object::print_this_number);


    // Now we can call the function this pointer points to.  This calls the function
    // obj.do_something() via our member function pointer.
    mfp1();

    // Now we can call the function this pointer points to.  This calls the function
    // obj.print_this_number(5) via our member function pointer.
    mfp2(5);


    // The above example shows a very simple use of the member_function_pointer. 
    // A more interesting use of the member_function_pointer is in the implementation
    // of callbacks or event handlers.  For example, when you register an event
    // handler for a dlib::button click it uses a member_function_pointer 
    // internally to save and later call your event handler.  
}

// ----------------------------------------------------------------------------------------



类函数成员指针

标签:

原文地址:http://www.cnblogs.com/yuliyang/p/4530522.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!