我想为我的数组类提供PHP样式的push_back功能:
arrayT<int> arr;
arr[] = 10; // == std::vector::push_back()
和
arrayT::operator[]( size_t pos = (size_t)-1)
这可能吗? 如果是,是否也可以与其他一些运营商合作?
答案 0 :(得分:7)
除下面明确说明的情况外,运算符函数不能有默认参数(8.3.6)。
operator[]
应该是一个非静态成员函数,只有一个参数。
唯一允许使用默认参数的运算符函数是operator()
。并且您不能声明operator[]
不接受任何参数。
所以不,你要求的是不可能的。