什么是C++类型无法复制?

Fra*_*Boi 0 c++ types

在Bjarne Stroustrup撰写的"C++编程语言"一书中,在讨论异常时,它说:

引发异常是为了表示错误的发生.它可以是任何可以复制的类型,但强烈建议仅使用专门为此目的定义的用户定义类型.

推理它我无法立即想到无法复制的对象.什么是无法在C++中复制的类型?

Jac*_*ack 5

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

  • 复制作业 T& operator=(const T&)
  • 复制构造函数 T(const T&)

如果未定义其中任何一个或已明确删除(= delete),则无法复制该对象.

该要求源于以下事实:异常处理必须能够将异常对象本身复制到某处以进行适当的管理.