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

类成员在头文件中初始化是否违反RAII机制?

问题解答

关于RAII机制的遵循

是的,my_var_完全遵循RAII机制。

作为Thing类的非静态私有成员,它的生命周期和所属的Thing对象严格绑定:

  • 当Thing对象被构造时,my_var_会在Thing构造函数体执行前完成初始化(这里用{}做值初始化,会调用OtherThing的默认构造函数);
  • 当Thing对象被销毁时,my_var_会在Thing析构函数体执行后自动被销毁,销毁顺序和构造顺序相反。

只要OtherThing本身是符合RAII设计的类(比如其析构函数会自动释放持有的资源),my_var_持有的资源就会被自动、正确地管理,不需要手动调用销毁逻辑。

关于生命周期范围

my_var_的生命周期绝对不会超出Thing类对象的作用域。

非静态成员变量是所属对象的一部分,它的存储位置和Thing对象完全一致:如果Thing对象在栈上,my_var_也在栈上;如果Thing对象在堆上,my_var_也在堆上。只有当Thing对象存在时,my_var_才存在;Thing对象被销毁的瞬间,my_var_也会随之销毁,不可能单独存活或超出Thing对象的作用域。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 04:15:42