7

可能的重复:
什么是复制和交换习语?
C ++中的复制构造函数和=运算符重载:通用函数可能吗?

有没有一种方法可以使复制构造函数和赋值运算符的主体包含相同的代码而实际上没有重复的代码(函数头除外)?

4

3 回答 3

4

一种常见的方法是复制和交换成语。您必须实现交换操作,但如果操作正确,您还可以获得异常安全分配的额外好处。

于 2011-02-22T01:01:50.623 回答
0

创建一个函数

    init(various parameters you need){
...
//common initializing process
}

然后从所有构造函数、复制和赋值运算符中调用此函数

于 2011-02-22T01:03:57.730 回答
-3

将功能放在一个单独的方法中,然后从您的复制构造函数和赋值运算符代码中调用它。

或者,您可以只从复制构造函数中调用赋值运算符。

于 2011-02-22T00:58:07.487 回答