【发布时间】:2011-11-03 21:26:31
【问题描述】:
为什么我的构造函数初始化器不能使用复制初始化?
struct S { int a; S(int b) : a(b) {} }; // direct initialization compiles
struct T { int a; T(int b) : a = b {} }; // copy initialization does not
我很困惑,因为 a(b) 和 a = b 都是表达式(分别是后缀和赋值表达式),而我的 C++ 书 [1] 说“初始化程序可以是任意复杂的表达式。”
[1] 利普曼、拉乔伊、穆。 “C++ 入门,第 4 版。” p457。
【问题讨论】:
-
你的术语不对,
a(b)是直接初始化... -
对不起,我把“直接”和“复制”换位了。固定。
标签: c++ constructor initialization