我了解到默认的复制赋值运算符(编辑:已更正,而不是复制构造函数)不能处理常量和引用。因此,如果一个类包含这样的成员,那么编译器将不会为它生成默认的复制构造函数。这个说法正确吗?为什么const不能处理?
此外,如果一个类包含指针作为成员,编译器会生成一个复制构造函数吗?我知道默认的复制构造函数只做浅层复制,但是编译器至少会生成一个复制构造函数,不是吗?
非常感谢您的澄清!
发布于 2015-06-16 02:08:29
如果没有为类X定义复制构造函数,则会隐式定义复制构造函数。它通常采用X(const X&)形式,但如果成员需要,它也可以是其他单参数形式之一,并且可以定义为已删除。构造函数的行为就像每个成员都是从右侧的相应成员初始化的一样,并且具有一个空的主体。有一些细节,但这只是大体的想法。
由于可以从相同类型的值初始化常量数据成员和引用数据成员,因此此类成员没有什么特殊之处。(不过,任务的情况有所不同。)
https://stackoverflow.com/questions/30851933
复制相似问题