我有一个名为 QuadTree 的类。我最近为它创建了一个复制构造函数,即:
QuadTree(const QuadTree &cpy);
比如说我还没有填写这个构造函数。只要不使用它,代码就可以编译得很好。现在,我有一个名为subtractTrees 的函数:
QuadTree * subtractTrees(QuadTree LHS, QuadTree RHS);
在制作复制构造函数之前,这段代码工作得很好。现在,使用此函数编译程序时,出现以下错误:
Undefined Referance to QuadTree::QuadTree(QuadTree const&)
就像由于我的复制构造函数在代码中使用并且尚未填写而发生的错误一样。这是否意味着现在我有一个复制构造函数调用像这样的被动函数(subtractTrees)将调用复制构造函数?
如果是这样,有没有办法在仍然使用复制构造函数的同时阻止这种情况发生?我需要这样做的原因是复制用于这样的函数会大大减慢我的代码。但我需要复制构造函数来轻松复制树。
编辑:我只是通过填写复制构造函数来修复错误,但问题更多的是关于
- 首先,如果没有复制构造函数,它是如何工作的。
- 如果有人试图通过不每次使用树时都复制树来节省速度,有没有一种方法可以利用这种不需要复制构造函数?