在声明类/结构/联合时,编译器将生成默认方法(rule of three)。当= default
使用这些方法时也会发生这种情况。
默认方法的外观如何?
答案 0 :(得分:0)
例如,让我们考虑默认的构造函数。根据C ++标准
隐式声明的默认构造函数是内联公共成员 同类的。
和
隐式定义的默认构造函数执行set of 由用户编写的类的初始化 没有ctor-initializer的那个类的默认构造函数(12.6.2) 和一个空的复合语句。
所以它看起来像
struct A
{
A() {}
};
除了未明确声明和定义。
关于复制构造函数,您可以在我的个人论坛上阅读
http://cpp.forum24.ru/?1-1-0-00000021-000-0-0-1388485669
虽然它是用俄语写的,但你可以使用谷歌服务翻译来翻译它。
答案 1 :(得分:0)
对于这些方法中的每一种,编译器都定义了默认的内联方法,这些方法调用对象的每个属性的默认方法。 (因此指针不会被初始化为任何内置类型)。
答案 2 :(得分:0)
这些方法将做到初始化类所需的最小值。
默认construtor - 对简单成员不做任何事情,但调用更复杂成员(class / struct)的构造函数以及调用其超类的ctor。
复制构造函数将执行浅拷贝(memcpy)。