下标[]运算符的默认值?

时间:2013-12-30 14:44:54

标签: c++ operator-overloading default operator-keyword

我想为我的数组类提供PHP样式的push_back功能:

arrayT<int> arr;
arr[] = 10; // == std::vector::push_back()

arrayT::operator[]( size_t pos = (size_t)-1)

这可能吗? 如果是,是否也可以与其他一些运营商合作?

1 个答案:

答案 0 :(得分:7)

  

除下面明确说明的情况外,运算符函数不能有默认参数(8.3.6)。

  

operator[]应该是一个非静态成员函数,只有一个参数。

唯一允许使用默认参数的运算符函数是operator()。并且您不能声明operator[]不接受任何参数。

所以不,你要求的是不可能的。