You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在C++类定义头文件中,如何将指针作为函数指针的参数?

函数指针中使用指针参数的正确写法

你的写法错误在于参数类型的声明方式,C++中声明指针类型参数时,*需要跟在类型名称之后,而非之前。

正确步骤:

  1. 确保类类型可见
    如果在头文件中使用尚未定义的类,先做前置声明:

    class MyClass; // 前置声明类类型
    
  2. 正确声明函数指针
    函数指针的参数要明确是「指向MyClass的指针类型」,写法如下:

    void (*myFunction)(MyClass*);
    

    如果是作为类的成员变量,直接在类定义中声明即可:

    class MyClass;
    
    class YourClass {
    public:
        void (*myFunction)(MyClass*);
    };
    

错误原因解析:

你写的void (*myFunction)(*myClass)中,*myClass不是合法的类型声明——编译器会把myClass当成一个变量名,而非类型,因此报expected identifier before * token错误。加括号的写法也无法改变这个问题,因为本质是类型声明的语法错误。

内容的提问来源于stack exchange,提问作者Someone

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 04:40:29