什么时候应该在 C 11 中使用花括号括起来的初始化器?
C 11 引入了一种新的类初始化语法,让开发人员想知道什么时候使用每个变体。这种多样性会降低编码效率,并可能导致模板代码中出现语义错误。
要解决此问题,请考虑以下准则:
-
复制初始化: 使用当值初始化对象的确切值时,复制 (=) 初始值设定项。这可确保错误不会意外调用显式构造函数,因为显式构造函数可能会以不同的方式解释该值。如果复制初始化不可用并且具有正确的语义,请使用大括号初始化。否则,使用括号初始化。
-
值存储: 使用花括号初始化来初始化要存储在对象中的值列表。这适用于向量/数组和复数的实部/虚部等数据结构。
-
值说明:当值不代表要存储的值而是代表要存储的值时,请使用括号初始化描述对象的预期状态。示例包括 fstream 中的向量大小参数和文件名参数。
通过遵循这些准则,开发人员可以提高编码速度并避免与初始化程序语法选择相关的潜在语义问题。
以上是何时在 C 11 中使用大括号括起来的初始化器?的详细内容。更多信息请关注PHP中文网其他相关文章!