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

无需typedef,返回裸函数指针的const成员函数声明语法

带const限定的函数指针Getter编写方法

首先看你的类定义:

class ExampleClass
{
private:
    double(*_binaryFunction)(double, double);
};

直接声明const Getter的写法

非const版本的Getter声明是:

double (*GetBinaryFunction())(double, double);

要给这个Getter加上const限定,必须把const关键字放在成员函数的参数列表之后,你写的以下写法是正确的:

double (*GetBinaryFunction() const)(double, double);

这里的const修饰ExampleClass的实例,确保调用该Getter时不会修改类的成员变量,完全符合const成员函数的规则。

使用typedef简化的写法

用typedef封装函数指针类型后,写法会清晰很多,你给出的代码是完全正确的:

typedef double (*BinaryFunction)(double, double);
BinaryFunction GetBinaryFunction() const;

typedef把复杂的函数指针类型简化为BinaryFunction,此时const直接放在成员函数声明末尾,和普通成员函数的const限定写法一致,可读性更强,推荐使用这种方式。

内容的提问来源于stack exchange,提问作者Jan Hošek

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 16:57:30