返回值为对象的函数
當(dāng)成員函數(shù)或獨(dú)立的函數(shù)返回對(duì)象時(shí),有幾種返回方式可供選擇。可以返回指向?qū)ο蟮囊谩⒅赶驅(qū)ο蟮腸onst引用或const對(duì)象。
1、返回指向const對(duì)象的引用
函數(shù)返回傳遞給它的對(duì)象:
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; }- 返回對(duì)象將調(diào)用復(fù)制構(gòu)造函數(shù),而返回引用不會(huì)。
- 指向引用的對(duì)象應(yīng)該在調(diào)用函數(shù)執(zhí)行時(shí)存在。
- v1和v2都是const,返回類型必須是const,這樣才匹配。
2、返回對(duì)象
常見場(chǎng)合:重載賦值運(yùn)算符、重載與cout一起使用的<<運(yùn)算符。
這樣的話,才能連續(xù)使用這幾個(gè)運(yùn)算符
sting & string::operator=(const string & s){ …… return *this }s1=s2=s3; cout<<s1<<"is coming";3、返回const對(duì)象
如果方法或函數(shù)要返回局部對(duì)象,則應(yīng)返回對(duì)象,而不是指向?qū)ο蟮囊谩?/p>
總結(jié)
- 上一篇: C++作用域为类的常量
- 下一篇: Eigen 模板库的简介