无法复制的C ++类型有哪些?

时间:2019-02-16 13:36:53

标签: c++ types

在Bjarne Stroustrup撰写的“ C ++编程语言”一书中,当谈到异常时,它表示以下内容:

  

抛出的异常是表示错误发生的对象。   它可以是任何可以复制的类型,但它强烈   建议仅使用专门为以下内容定义的用户定义类型:   这个目的。

对此,我无法立即想到无法复制的对象。 什么是不能在C ++中复制的类型?

1 个答案:

答案 0 :(得分:5)

要被复制,对象必须定义至少两种可能的复制方式之一:

  • 副本分配T& operator=(const T&)
  • 复制构造函数T(const T&)

如果未定义任何对象或已将其明确删除(= delete),则无法复制对象。

之所以提出这样的要求,是因为异常处理必须能够将异常对象本身复制到某个地方以进行适当的管理。