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

C++类构造函数默认参数与成员初始化列表作用机制咨询

C++构造函数默认参数与成员初始化的疑问解答

咱们直接把问题拆成几个关键点说:

  • 默认参数是“备用值”而非“固定值”
    你给构造函数参数设置的=0是默认参数,它的作用是:当调用构造函数时如果没有传入对应位置的参数,才会用这个0作为 fallback 值;一旦你显式传入了参数(比如这里的1000和100),编译器就会直接使用你传入的值,默认值会被自动忽略——这是C++默认参数的基本规则,普通函数也遵循这个逻辑。

  • 成员初始化列表负责将构造函数参数值传递给成员变量
    构造函数里的num_people(np), num_immunized(ni)是成员初始化列表,它的作用是把构造函数参数np和ni的当前值,直接初始化类的成员变量。这里因为你调用时传入了1000和100,所以np已经是1000,ni已经是100,初始化列表自然就把这两个值赋给了对应的成员变量,最终成员变量的值就是1000和100。

简单总结:默认参数仅在未传值时生效,传值后优先使用传入值;初始化列表只是把已经确定的参数值转交给成员变量而已。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 00:45:28