【发布时间】:2015-04-30 11:35:00
【问题描述】:
2 小时后我将参加 C++ 考试,但我仍然想知道复制构造函数的语法。
到目前为止,我所理解的是,您将 CopyConstructor 置于私有状态,这样当某些函数或其他任何东西想要复制您的类时,它就无法工作,因为它无法访问私有变量。因此,您可以检查是否遗漏了任何只会进行浅拷贝的指针。
到目前为止一切顺利。
现在我读到的语法是
ClassName(const ClassName &)
我想知道为什么你有那个 & 和 const。仅仅 ClassName(ClassName) 就够了吗?
【问题讨论】:
-
您的实际问题与您帖子的第一部分完全无关。为什么要将任何其他函数中的参数作为 const 引用传递?同样的答案也适用于此。
-
您需要重新阅读您的介绍性教科书。不幸的是,这可能需要两个多小时。祝你考试顺利,下次记得复习。
-
@vsoftco
ClassName(const ClassName &)实际上与ClassName(ClassName)不一样,因为过载。 -
知道了,虽然现在我测试了,似乎连声明都不OK,ideone.com/cuCq4q。 @Lanting 我知道,我首先认为声明它是合法的(而不是定义它)。
-
不确定否决票,这似乎是一个合理的问题。对于新手来说,函数参数会从相应的参数中复制构造出来并不是很明显,而且书籍通常不会详细介绍这种程度,尤其是在早期。
标签: c++ private copy-constructor