在以下代码中,我为数组下标运算符提供了默认参数。
struct st
{
int operator[](int x = 0)
{
// code here
}
};
但是,编译器产生了一个错误:
error: 'int st::operator[](int)' cannot have default arguments
int operator[](int x = 0)
但是,如果我为函数调用运算符提供默认参数。
struct st
{
int operator()(int x = 0)
{
// code here
}
};
它运行良好。
所以,我有一个问题:
- 为什么不允许数组下标运算符使用默认参数?
- 为什么允许函数调用运算符使用默认参数?
x[]
代表什么意思? - glglglsome_array[]
成为一个有效的表达式,并且可能允许类似于PHP的$array[] = 'a new value tacked on to the end';
这样的操作。 - cHao