C++11 添加了告诉编译器的功能创建默认实现 http://en.wikipedia.org/wiki/C%2B%2B0x#Defaulting.2Fdeleting_of_standard_functions_on_C.2B.2B_objects任何一个的特殊成员函数 http://en.wikipedia.org/wiki/Special_member_functions。虽然我可以看到删除函数的价值,但显式默认函数的价值在哪里?只要将其留空,编译器无论如何都会执行此操作。
我能看到的唯一一点是,仅当不存在其他构造函数时才会创建默认构造函数:
class eg {
public:
eg(int i);
eg() = default;
};
但这真的比现在更好吗?
class eg {
public:
eg(int i);
eg() {}
};
或者我错过了一个用例?
默认构造函数将有一个声明,并且该声明将遵守正常的访问规则。例如。您可以保护默认的复制构造函数。如果没有这些新声明,默认生成的成员是公共的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)