为什么在三分法则中不考虑非默认构造函数?
作者:Eric Z 提问时间:10/6/2011
三法则(也称为三巨头定律或三巨头定律)是C++中的经验法则,它声称如果一个类定义了以下其中之一,它可能应该显式定义所有三个:析构函数,复制构造函数,复制赋值运算符。 为什么非默认构造函数不被视为其中...
法则 问答列表
作者:Eric Z 提问时间:10/6/2011
三法则(也称为三巨头定律或三巨头定律)是C++中的经验法则,它声称如果一个类定义了以下其中之一,它可能应该显式定义所有三个:析构函数,复制构造函数,复制赋值运算符。 为什么非默认构造函数不被视为其中...
作者: 提问时间:12/16/2012
好吧,我的问题是,在我想“卸载”加载的DLL之后,复制分配运算符被无限次调用,直到崩溃。 我从中删除矢量数据的代码如下所示: void UnloadPlugins() { dbg(("[DBG]...
作者:user2310042 提问时间:4/23/2013
很难说这里问的是什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或夸夸其谈,目前的形式无法合理回答。如需帮助澄清此问题以便重新打开,请访问帮助中心。 10年前关闭。 三法则。复制构造函数、赋值运算...
作者:Seub 提问时间:8/9/2013
注意:这个问题是继上一个问题之后的,我希望仍然可以把它作为一个新问题提出来。 我正在尝试为树类实现“三大半规则”(复制和交换成语),如下所示: class Tree { friend void ...
作者:galvanize 提问时间:9/13/2015
我有一个基类,我不想使派生类可复制。为了使所有内容都明确,我以这种方式实现它: class A { public: A() = default; virtual ~A() = defaul...
作者:incubus 提问时间:7/6/2021
在使用接口(无论如何是这个概念)和抽象类时,我试图弄清楚五法则,并努力理解规则是如何工作的。 假设我有一个这样的布局: #include <memory> #include <optional> ...
作者:BinarySplit 提问时间:10/7/2009
我编写了一个测试来检查在对堆栈变量进行覆盖赋值之前是否调用了析构函数,但我找不到任何合理的结果解释...... 这是我的测试(在Visual C++ 2008发布模式下): #include <i...
作者:Tony Park 提问时间:12/3/2010
以下代码片段是否泄漏?如果不是,在 foobar() 中构造的两个对象在哪里被破坏? class B { int* mpI; public: B() { mpI = new int; } ~...
作者:Elimination 提问时间:9/25/2017
这个问题在这里已经有答案了: 三法则变成五法则与C++11?[已结束] (9 个答案) 自动生成移动操作的规则是什么? (2 个答案) 6年前关闭。 根据我的理解,五法则是一个指导规则。尽管如此,我...
作者:mark 提问时间:5/7/2013
闭。这个问题正在寻求有关书籍、工具、软件库等的建议。它不符合 Stack Overflow 准则。它目前不接受答案。 我们不允许向读者、工具、软件库等寻求推荐的问题。您可以编辑问题,以便用事实和引文...