为什么在三分法则中不考虑非默认构造函数?
作者: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 ...
作者:metamorphosis 提问时间:3/28/2014
根据我目前的理解,如果你有一个类对象的向量,如果你擦除向量的任何成员,通常该向量会重新分配它的一些对象,以保持内存的连续性。因此,您需要实现三规则(析构函数、复制构造函数和复制赋值运算符),以便在擦除...
作者:galvanize 提问时间:9/13/2015
我有一个基类,我不想使派生类可复制。为了使所有内容都明确,我以这种方式实现它: class A { public: A() = default; virtual ~A() = defaul...
作者:incubus 提问时间:7/6/2021
在使用接口(无论如何是这个概念)和抽象类时,我试图弄清楚五法则,并努力理解规则是如何工作的。 假设我有一个这样的布局: #include <memory> #include <optional> ...
作者:kaisong 提问时间:11/7/2022
我希望能够编写快速内核,当表达式足够计算密集时,这些内核实际上可以充分利用*(*90% 也可以)使用我的硬件的计算能力。顺便说一句,在上一个问题中,我问了同样的内存性能而不是计算性能。 对于手头的问...
作者:Caruccio 提问时间:6/14/2012
有没有一种神奇的方法可以重载赋值运算符,比如?__assign__(self, new_value) 我想禁止对实例进行重新绑定: class Protect(): def __assign__...
作者:BinarySplit 提问时间:10/7/2009
我编写了一个测试来检查在对堆栈变量进行覆盖赋值之前是否调用了析构函数,但我找不到任何合理的结果解释...... 这是我的测试(在Visual C++ 2008发布模式下): #include <i...