编程语言
首页 > 编程语言> > duilib框架分析:几个回调(C++11)

duilib框架分析:几个回调(C++11)

作者:互联网

里面涉及的几个回调还比较有用处,记录一下用做练手
主要还是一个原理:函数和方法基本是相似的,区别仅仅在于方法可能带有一个状态(对象拥有的成员变量),在C++11中使用std::funcation将调用统一

typedef std::function<void(const std::string&)> Callback;
class A {
public:
    virtual void Create(const std::string &str) { std::cout << "default create" << std::endl; }
};
class B :public A {
public:
    //虚方法重写
    virtual void Create(const std::string &str) { std::cout << str << std::endl; }
};

void Builder(const std::string &name, Callback cb = Callback()) {
    //...先根据其它条件创建
    //...如果都不满足且有回调的情况,执行回调创建

    if (cb) {
        cb(name);
    }

    //或者:cb也可以和NULL进行比较
    //if (cb != NULL) {
    //    cb(name);
    //}
}
int main()
{
    auto b = new B();
    auto cb = std::bind(&A::Create, b, std::placeholders::_1);
    Builder("box",cb);//"box"
    Builder("label",cb);//"label"

    Builder("vbox", Callback());
}

 

标签:11,duilib,练手,cout,C++,std,回调
来源: https://www.cnblogs.com/tinaluo/p/14394884.html