A. *_* K. 46 c++ templates const
在编写以下函数时abs,我收到错误:
非成员函数unsigned int abs(const T&)不能有cv-qualifier.
template<typename T>
inline unsigned int abs(const T& t) const
{
return t>0?t:-t;
}
Run Code Online (Sandbox Code Playgroud)
删除const函数的限定符后,没有错误.由于我没有t在函数内部进行修改,因此上面的代码应该编译.我想知道为什么我得到错误?
Bo *_*son 32
const函数声明末尾的修饰符适用this于成员函数的隐藏参数.
因为这是一个自由函数,所以没有,this并且不需要那个修饰符.
参数列表中的t参数已经有了自己const的参数.
eca*_*mur 12
成员函数上的cv限定符指定this指针具有间接类型const(或volatile,const volatile),因此可以在具有该限定条件的实例上调用成员函数.
自由函数(和类静态函数)没有this指针.
| 归档时间: |
|
| 查看次数: |
74249 次 |
| 最近记录: |