我看过 Nicolai Josuttis(C++ 标准委员会成员)的一个talk(确切的时间戳,他没有解释),他说自从 C++11 以来,getter 应该这样写:
问题是,与这个getter相比有什么区别?
const std::string& getName() const&
{
return memberStringVar;
}
问题是,与这个getter相比有什么区别?
const std::string& getName() const
{
return memberStringVar;
}
C{}.getName()
是非法的。 - Passer By&&
getter(用于 rvalues)。如果存在这个 getter,另一个 getter 必须具有 ref-qualifier,因此你的第二个示例无法工作。 - geza