我为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版本的函数吗?
答案 0 :(得分:1)
您可以使用const引用:
const A& b=a;
k=b[0];
或const const:
k=const_cast<const A&>(a)[0];