可能重复:
What is the proper way to return an object from a C++ function ?
你好,
我想知道关于返回类型的以下两个函数之间的区别是什么?
我一直认为这会是一样的吗?
海因里希
答案 0 :(得分:4)
第一个只能返回对单个对象的引用,并且可能不为null。或者更确切地说,它不应该为空。
第二个可能是将指针返回到单个对象或对象数组。
如果您希望返回一个不能为null的单个对象,则#1往往是首选形式。在可以返回null的情况下,必须使用#2。有些API根本不返回引用(如QT)。
然而,这完全是语法差异。这两种类型在编译代码中的处理方式完全相同:将使用指向对象(或数组)的指针。也就是说,严格地说,参考符号&在普通指针上没有添加新的语义功能。
(这可能只是总结了其他人写的内容)
答案 1 :(得分:1)
第一个返回对象(或其地址)的引用。另一个返回指针,而不是引用
主要区别:第二个可以返回NULL