如果我有一个如下所示的成员函数:
const T& temp const( const T& t) const{
//some code
return t;
}
每个const做了什么,按顺序从左到右? 这是对还是错?
答案 0 :(得分:8)
const T& temp const( const T& t) const{
^^1^^ ^^2^^ ^^3^^ ^^4^^
按从左到右的顺序:
const T
的引用。所以回报不可修改。 T
的不可修改引用作为其参数。它可以是对现有对象的引用。它可以从一个临时值调用,它的生命周期延长到t
的生命周期。你不能多说temp
被称为什么 - 它可能是一个左值,它可能是一个右值(如果T
是复制或移动可构造的)。 temp
不是成员函数,则语法错误。否则,它是成员函数的const
- 限定条件,表示可以在const
对象上调用它,并且该函数可能不会修改mutable
的{{1}}成员。 1}}或调用任何其他非this
限定的成员函数。