C++创建对象的3种方式对比

发布时间 2023-06-18 17:26:00作者: 0x7F

三种方式分别为 等号,圆括号,大括号

等号和圆括号是以前就存在的,大括号是新的语法,其具有2个优点:

  1. 防止变窄转换: 大括号不支持变窄转换,等号和圆括号为了向下兼容支持变窄转换
  2. 免疫C++最令人头疼的解析: C++规定任何可以被解析为一个声明的东西必须被解析为声明,因此无法区分无参的构造函数和函数声明,此规则会默认其为函数声明

大括号初始化的缺点体现在构造函数的调用顺序方面

Reference