复制构造函数会在这里工作吗?

时间:2013-04-24 18:23:38

标签: c++ reference

void setCurrentTransformations(const NodeTransformations& theSet){
    m_currentTransformations=theSet;
}

我想确认我完全理解这一点,因为theSet在调用此函数后就超出了范围。

这实际上是复制 theSetm_currentTransformations,对吗?换句话说,无论调用者theSet的范围如何,它都是安全的。

事实上,如果这是一个指针而不是一个引用,我知道是安全的。但我在这里假设它完全正常,m_currentTransformations将复制theSet,以便theSet引用的原始值发生什么不重要,对吗?

1 个答案:

答案 0 :(得分:4)

  

这实际上是将theSet复制到m_currentTransformations中,对吗?

当然,这将是一个副本。但是,它将使用NodeTransformations类的赋值运算符来执行此操作,因此您可能需要注意它的定义方式。如果定义了复制构造函数,通常也需要赋值运算符和析构函数(that is commonly known as the rule of three)。