首页 > 解决方案 > 这是一个对象析构函数吗?

问题描述

我正在尝试理解 C++ 代码。*.h文件中写入以下内容

Sys(int w, int h, Eigen::Matrix3f K, bool enableSys = true);
Sys(const Sys&) = delete;
Sys& operator=(const Sys&) = delete;
~Sys();

Line 2Line 3的解释是什么?

那些是破坏者吗?
为什么需要它们?
这是一个好习惯吗?

标签: c++c++11

解决方案


第 2 行是一个复制构造函数,将其设置为= delete意味着它将不可用。实际上,无法复制对象。

第 3 行是复制赋值运算符,效果相同 - 不允许对对象进行复制赋值。

如果您不清楚这一点,您应该阅读一本关于 C++ 的好书。


推荐阅读