1

我为 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 版本的函数吗?

4

1 回答 1

1

您可以使用 const 参考:

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

或者一个 const 演员:

k=const_cast<const A&>(a)[0];
于 2012-04-20T02:57:09.843 回答