// FirstTest.cpp : 定义控制台应用程序的入口点。 //function<type> 存放方法的地址,函数的包装器(function wrapper) //*iterator1 内容为参数传入function #include "stdafx.h" #include <boost/function.hpp> #include <string> #include <iostream> using namespace std; using namespace boost; class FunTest { private: string m_name; public: FunTest(string name) { m_name = name; } void print_mem(string elem) { cout << elem << this->m_name << endl; } }; void printElem(string &elem) { cout << elem <<endl; } int main() { //普通方法使用 string name = "leeboy"; boost::function<void(string &)> fun; fun = &printElem; fun(name); //此处写明FunTest*是因为所有的成员方法都会隐式传入this指针 //传入类的指针来指明this的指向 boost::function<void(FunTest*, string)> funclass; funclass = &FunTest::print_mem; FunTest test("leeboy"); funclass(&test, "hello "); system("pause"); return 0; }
时间: 2024-11-02 12:03:09