前提:
有以下类:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
方法一
- 1
- 1
输出:(3次构造函数)
A()
A(const A&)
A(const A&)
~A()
~A()
~A()
方法二
- 1
- 1
输出:(3次构造函数)
A()
A(const A&)
A(const A&)
~A()
~A()
~A()
方法三
- 1
- 1
输出:(4次构造函数)
A()
A(const A&)
A(const A&)
A(const A&)
~A()
~A()
~A()
~A()
方法四
- 1
- 1
输出:(4次构造函数,实际上还调用了一次operator=)
A()
A()
A(const A&)
A(const A&)
~A()
~A()
~A()
~A()
方法五
- 1
- 1
输出:(5次构造函数)
A()
A(const A&)
A(const A&)
A(const A&)
A(const A&)
~A()
~A()
~A()
~A()
~A()
总结
很显然:
方法一、二是最优的,成本最少。
方法五是最差的,成本最高。
转自:http://blog.csdn.net/hisinwang/article/details/45133379