正文

回到顶部

1. 问题的提出:要求函数返回对象时,可以返回引用么?

一旦程序员理解了按值传递有可能存在效率问题之后(Item 20),许多人都成了十字军战士,决心清除所有隐藏的按值传递所引起的开销。对纯净的按引用传递(不需要额外的构造或者析构)的追求丝毫没有懈怠,但他们的始终如一会产生致命的错误:它们开始传递指向并不存在的对象的引用。这可不是好事情。

考虑表示有理数的一个类,它包含将两个有理数相乘的函数(Item 3):

大学生就业培训,高中生培训,在职人员转行培训,企业团训

 1 class Rational { 2  3 public: 4  5 Rational(int numerator = 0, // see Item 24 for why this 6  7 int denominator = 1); // ctor isn’t declared explicit 8  9 ...10 11 private:12 13 int n, d; // numerator and denominator14 15 friend16 17 const Rational // see Item 3 for why the18 19 operator*(const Rational& lhs, // return type is const20 21 const Rational& rhs);22 23 };

大学生就业培训,高中生培训,在职人员转行培训,企业团训

网友评论