结构/类的对象(没有构造函数)可以使用创建初始化列表。为什么在结构/类上不允许这样做构造函数?
struct r { int a; };
struct s { int a; s() : a(0) {} };
r = { 1 }; // works
s = { 1 }; // does not work
不,具有构造函数的对象不再被视为 POD(普通旧数据)。对象只能包含其他 POD 类型作为非静态成员(包括基本类型)。 POD 可以具有静态函数和静态复杂数据成员。
请注意,即将推出的 C++ 标准将允许您定义初始化列表,这将允许使用大括号初始化非 POD 对象。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)