Example:
struct X {
Z operator[](std::initializer_list<int>);
};
X x;
x[{1,2,3}] = 7; // OK: meaning x.operator[]({1,2,3})
int a[10];
a[{1,2,3}] = 7; // error: built-in subscript operator
operator[]
声明中的Z
是什么意思?
表达式x[{1,2,3}] = 7;
的可能含义是什么?
struct Z { void operator=(int ); };
?否则,它的含义并不重要 - 关键是展示您可以为类类型定义用户定义的operator[]
。 - Barryusing Z = int&;
。 - BarryX
显然是像多维数组一样的东西,而Z
是它所持有元素的类型。 - Barmar