返回值为对象的函数
當成員函數或獨立的函數返回對象時,有幾種返回方式可供選擇。可以返回指向對象的引用、指向對象的const引用或const對象。
1、返回指向const對象的引用
函數返回傳遞給它的對象:
Vector Max(const Vector & v1, const Vector & v2){ if (v1.mag()< v2.mag)return v1; elseteturn v2; }const Vector & Max(const Vector & v1, const Vector & v2){ if (v1.mag()< v2.mag)return v1; elseteturn v2; }- 返回對象將調用復制構造函數,而返回引用不會。
- 指向引用的對象應該在調用函數執行時存在。
- v1和v2都是const,返回類型必須是const,這樣才匹配。
2、返回對象
常見場合:重載賦值運算符、重載與cout一起使用的<<運算符。
這樣的話,才能連續使用這幾個運算符
sting & string::operator=(const string & s){ …… return *this }s1=s2=s3; cout<<s1<<"is coming";3、返回const對象
如果方法或函數要返回局部對象,則應返回對象,而不是指向對象的引用。
總結
- 上一篇: C++作用域为类的常量
- 下一篇: Eigen 模板库的简介