【发布时间】:2014-09-27 06:20:17
【问题描述】:
我知道复制构造函数是将新对象作为现有对象的副本的构造函数,但是,每个将另一个对象作为参数的构造函数都称为复制构造函数吗?
示例:如果我必须对 X 和 Y 进行类,X(const Y& y) 是一个复制构造函数吗?
如果没有这样的构造函数有名字吗?
【问题讨论】:
-
你在说什么语言?
-
这取决于语言;大多数语言(如果不是全部)实际上并不要求您使用作为参数传递的对象来初始化新对象。
-
这是一个转换构造函数。
-
复制构造函数应该引用与参数相同类型的对象。引用可以是 const 或非常量...
-
相关说明:如果你有一个类似的构造函数,编译器可以使用它来隐式地将 Y 类型的对象转换为 X 类型的对象。如果这是不希望的行为,它可以是通过在构造函数之前放置关键字'explicit'来删除。这样做通常被认为是“良好的形式”:)
标签: c++ oop copy-constructor