请纠正我,如果我错了,但我的理解是,一个拷贝构造函数是用来当你这样做:(C++)赋值运算符VS拷贝构造函数:当每个隐含使用
myClass newInstant = oldInstant;
而分配当你做这个操作符使用:
myClass newInstant;
newInstant = oldInstant;
相信无论是实现同样的结果,而是因为它避免首先使用构造函数然后复制在新的数据首先是更直接。
我不确定的是这个,当一个函数被传递而不是通过引用的时候,它会使用复制构造函数或赋值运算符来复制它。此外,从函数返回瞬间时使用。
一般情况下,在哪些情况下使用了复制构造函数和赋值运算符?
最后一个问题,我将如何返回一个值而不复制它?如果返回的时刻是副本,并且旧的时刻已被删除,那么我将如何解决这个问题以提高效率?
感谢
当使用现有的实例创建新实例并使用赋值运算符用另一个实例覆盖现有实例时,将使用复制构造函数。所以当按值传递某个函数时,会从现有函数创建一个新实例,因此........。如果您希望在按值返回时避免使用副本,请尝试确保您的代码允许优化返回值或移动任何复制代价高昂的代码。 –
“最后一个问题”是一个单独的问题。请坚持每个问题1个问题。您应该能够通过搜索该网站找到该问题的答案 –