c++可调用对象使用示例

复制代码
void func(void)
{}

struct Foo{
    void operator()(void)
    {}
};

struct Bar{
    using fr_t=void (*)(void);
    static void func(void){}
    operator fr_t(void)
    {
        return func;
    }
};

struct A{
    int a_;
    void mem_func(void){}
};

int main(void)
{
    // 函数指针
    void (*func_ptr)(void)=&func;
    func_ptr();

    // 仿函数
    Foo foo;
    foo();

    // 可以被转换为函数指针的类对象
    Bar bar;
    bar();

    // 类成员函数指针
    void (A::*mem_func_ptr)(void)=&A::mem_func;
    // 类成员指针
    int A::*mem_obj_ptr=&A::a_;

    A aa;
    (aa.*mem_func_ptr)();
    aa.*mem_obj_ptr=123;
    return 0;
}
复制代码

 

posted @   Wangtn  阅读(59)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
点击右上角即可分享
微信分享提示