Questions tagged «deleted-functions»

3
默认构造函数和析构函数的“ = default”与“ {}”有何不同?
我最初将此问题仅发布为关于析构函数的问题,但现在我添加了对默认构造函数的考虑。这是原始问题: 如果我想给我的类一个虚拟的析构函数,但在其他方面与编译器生成的析构函数相同,则可以使用=default: class Widget { public: virtual ~Widget() = default; }; 但是似乎我可以通过使用空定义进行更少的键入而获得相同的效果: class Widget { public: virtual ~Widget() {} }; 这两种定义有什么不同的表现方式吗? 根据针对该问题发布的答复,默认构造函数的情况似乎类似。既然对于析构函数,“ =default”和“ {}”之间的含义几乎没有差异,那么对于默认构造函数,这些选项之间的含义几乎也没有差异吗?也就是说,假设我要创建一个将同时创建和销毁该类型的对象的类型,为什么我要说 Widget() = default; 代替 Widget() {} ? 如果在发布原始问题后再提出此问题违反了某些SO规则,我深表歉意。为默认构造函数发布一个几乎相同的问题令我震惊,因为它是不太理想的选择。

6
错误:使用已删除的功能
我一直在研究一个朋友写的一些C ++代码,遇到以下错误,使用gcc4.6编译时从未见过: error: use of deleted function ‘GameFSM_<std::array<C, 2ul> >::hdealt::hdealt()’ is implicitly deleted because the default definition would be ill-formed: uninitialized non-static const member ‘const h_t FlopPokerGameFSM_<std::array<C, 2ul> >::hdealt::h’ 编辑:这来自使用Boost MSM的部分代码:Boost Webpage Edit2:= delete()源代码中的任何地方都没有使用过。 一般来说,此错误是什么意思?发生此类错误时我应该寻找什么?
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.