有没有办法检查在 C++ 中复制或分配对象是否安全?
我有以下问题。我正在一个必须用 c++ 执行的程序中使用 C 库 igraph (http://igraph.sourceforge.net/)。所以我找到了这个 C 库的 C++ 包装器 (http:/…
派生类的初始化列表上的基类复制构造函数 (C++)
举个例子: class Base { Base (const Base & copyFrom) { globalRegister (* this) } } class Derived { Derived (const Derived & copyFrom) …
指向对象的指针向量,需要向量的深拷贝,但对象是继承对象的基础
我想要一个带有指向对象的指针的向量的深层副本,但该对象可以是 C 或 B。我知道令人困惑(我解释它的方式),让我举例说明。 class A { A(const A&am…
使用复制构造函数而不是 Object.clone 进行深度复制的正确方法
我有一些使用 Object.clone 执行深层复制的代码,但我正在尝试使用更“可接受的”复制构造函数技术重写它。下面是我想要做的两个简单示例,第一个使用…
复制Delphi对象的正确方法
使用构造函数或实例函数复制对象实例的优点和缺点是什么? 示例 A: type TMyObject = class strict private FField: integer public constructor Cre…
在结构体的 STL 映射中,为什么“[ ]”会出现在结构体中?运算符导致结构体的 dtor 被额外调用 2 次?
我创建了一个简单的测试用例,展示了我在正在处理的更大代码库中注意到的奇怪行为。该测试用例如下。我依靠 STL Map 的“[ ]”运算符来创建指向此类结…
使用 const 限定符获取对象的私有属性时出现问题
我是 C++ 的新手,我遇到了一个非常愚蠢的问题。 我有一个 Graph 类,我需要为其创建一个复制构造函数。这是我的课程: #include <igraph.h> #inc…
C++虚拟继承和类型转换/复制构造函数混淆
我有下面的代码: class A { } class B: public virtual A { public: B() { cerr << "B()" } B(const A& a) { cerr << "B(const A&)" }…
C++ - 在创建时调用赋值运算符而不是复制构造函数
我想强制在结构之间进行显式转换,就像本机类型一样: int i1 i1 = some_float // this generates a warning i1 = int(some_float): // this is OK in…
为什么不调用复制构造函数?
class MyClass { public: ~MyClass() {} MyClass():x(0), y(0){} //default constructor MyClass(int X, int Y):x(X), y(Y){} //user-defined constru…
在 C++ 中实现 Exception 类
因此,我尝试基于 Java Exception 类为 C++ 编写一个简单的 Exception 基类。 我确信已经有很棒的库了,但我这样做是为了练习,而不是生产代码,而且…
根据operator=实现复制构造函数
如果 operator= 定义正确,是否可以使用以下内容作为复制构造函数? MyClass::MyClass(MyClass const &_copy) { *this = _copy } …