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

类内使用C++作用域解析符访问非静态成员的含义疑问

非静态成员函数中A::I的作用域解析

你的代码里,function是非静态成员函数,I也是非静态成员变量,这里的A::I并非静态成员访问,而是等价于调用该函数的对象实例的this->I。

根据C++规范,在非静态成员函数内部,使用类名::非静态成员的写法时,编译器会自动将其解析为当前对象的成员。因为非静态成员函数本身依赖于对象实例存在,函数执行时必然绑定了一个具体的A对象,所以A::I实际上就是这个绑定对象的I成员,和直接写I或者this->I的效果完全一致。

需要注意的是,这种写法虽然语法合法,但可读性很差——很容易让其他开发者误以为I是静态成员。实际开发中更推荐直接写I(成员函数内默认访问当前对象成员)或者显式写this->I,语义更清晰。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 06:42:01