什么时候调用const版本?

时间:2012-04-20 02:42:53

标签: const

我为A班制作了“T operator [](int i)const”和“T& operator [](int i)”。

(我也尝试过“const T& operator [](int i)const”和“T& operator [](int i)”)

操作员打印一个值以区分调用哪个操作符。

A a;
int k = a[0];
k = a[0];
const int l = a[0];

结果:三次调用非const版本。

如何调用const版本? 我应该使用const类吗? 如果不使用const类,就没有机会调用const版本的函数吗?

1 个答案:

答案 0 :(得分:1)

您可以使用const引用:

const A& b=a;
k=b[0];

或const const:

k=const_cast<const A&>(a)[0];