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

如何在类内通过this关键字调用重载的()运算符?

C++ 类内调用重载 operator() 的规范写法

在类成员函数中调用重载的括号运算符,有两种行业普遍认可的规范写法,可读性都比(*this)(5)更好:

  • 写法1:省略this的显式运算符调用
    直接写operator()(5)即可,不需要加任何前缀,符合C++成员函数的调用规则,简洁无歧义,适合没有强制要求成员访问必须带this前缀的编码规范。
  • 写法2:带this前缀的显式运算符调用
    写作this->operator()(5),明确标记是调用当前对象的成员函数,适配要求所有成员访问必须显式带this的编码规范。

修改后的代码示例如下:

struct MyStruct
{
    void operator()(int a)
    {
        // Do something with "a"
    }

    void myFunc()
    {
        // 可选写法1
        operator()(5);
        // 可选写法2
        // this->operator()(5);
    }
};

补充说明:原来的(*this)(5)写法本身完全符合C++语法规则,只是可读性不如显式调用运算符函数直观,你可以根据自己团队的编码规范选择合适的写法。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 20:27:03