注册 登录
编程论坛 C++教室

[求助]返回对象的引用

幽灵嫖客 发布于 2007-05-07 07:28, 528 次点击

看书时,说
“如果方法或函数返回一个没有公有复制构造函数的类的对象,它必须返回一个指向这种对象的引用。”

为什么?那些类没有公有的复制构造函数?

1 回复
#2
aipb20072007-05-07 17:28

有些类需要自己定义复制构造函数,有些类提供合成复制构造函数,有些类因为需要,不允许或者不期望有复制行为。

如果有第三种情况,那么当定义一个成员函数时,返回类型就不能是该类对象,因为函数在这种情况下返回的副本。
而只能返回引用,因为返回引用是直接返回对象本身,没有复制行为。

同样的道理,在参数中这样的类对象也只能按引用调用。

1