葱葱那年丶 2018-12-20 18:33 采纳率: 100%
浏览 378
已采纳

c++ 模板编程的相关问题

template <typename T>
class testD
{
public:
    T *obj;
    typedef void (T::*Function)(void);
    Function func;
    void go()
    {
        (this->obj->*(func))();
    }
};

代码里的 T::*Function 和 (this->obj->*(func))(); 是什么意思?

  • 写回答

1条回答 默认 最新

  • _ZGq 2018-12-20 10:52
    关注

    typedef void (T::*Function)(void)是重命名了一个函数指针,把指向返回值为void、参数为void的函数指针定义成了T::Function(怎么能是T::funciton呢?你看看这里是不是有问题)。这个func就是一个指向返回值为void、参数为void的函数指针。

    (this->obj->*(func))();
    就是调用了本对象的obj指针成员所指向的函数func。(我觉得这个T有些问题,你检查一下,是不是T类型有一个void(*)(void)成员函数)

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

    报告相同问题?

    悬赏问题

    • ¥15 组件库引入并使用在若依框架未展示
    • ¥149 关于#使用python 的Flash Echarts+ajax+mysql动态数据实现饼图#的问题,请各位专家解答!
    • ¥15 RichTextBox中追加文本时报错
    • ¥15 关于c语言的学习问题
    • ¥15 activity升级到flowable工作流act_ge_bytearray的草稿json数据复制到act_de_model 的model_editor_json的脚本
    • ¥15 cvi使用CreateThread创建线程时,出现存储空间不足无法处理此命令的错误
    • ¥15 求苹果推信imessage批量推信技术
    • ¥15 ubuntu 22.04 系统盘空间不足。隐藏的docker空间占用?(相关搜索:移动硬盘|管理系统)
    • ¥15 c++ word自动化,为什么可用接口是空的?
    • ¥15 Matlab计算100000*100000的矩阵运算问题: