为什么在C+中使用私有拷贝构造函数而不是删除拷贝构造函数+; 为什么在C++中使用私有复制构造函数删除复制构造函数?
例如:为什么在C+中使用私有拷贝构造函数而不是删除拷贝构造函数+; 为什么在C++中使用私有复制构造函数删除复制构造函数?,c++,C++,例如: 类实体 { 私人: 实体(常量实体和副本)/2个可能的原因: 不能使用C++11或更高版本 您需要类的对象能够被类的方法或它的朋友复制,但不能被其他任何东西复制 与C++98兼容。私有复制ctor可以在其他成员函数中使用。如果类的资源是唯一的,则可以使用删除。例如,您可以将复制ctor设置为私有,并向外部提供公共克隆函数。请提供一个示例构造,说明您可能希望实例能够复制的位置,其中你不想让外人这样做吗?@camercu是一个链接列表节点。应该能够创建节点的类只有节点和链接列表,即节点的朋
类实体
{
私人:
实体(常量实体和副本)/2个可能的原因:
- 不能使用C++11或更高版本
- 您需要类的对象能够被类的方法或它的朋友复制,但不能被其他任何东西复制
与C++98兼容。私有复制ctor可以在其他成员函数中使用。如果类的资源是唯一的,则可以使用删除。例如,您可以将复制ctor设置为私有,并向外部提供公共克隆函数。请提供一个示例构造,说明您可能希望实例能够复制的位置,其中你不想让外人这样做吗?@camercu是一个链接列表节点
。应该能够创建节点
的类只有节点
和链接列表,即节点
的朋友
。
class Entity
{
private:
Entity(const Entity ©) // <== private copy constructor
{
/* do copy stuff */
}
public:
/* more code here... */
}
class Entity
{
public:
Entity(const Entity ©) = delete; // <== copy constructor deleted
/* more code here... */
}