我希望我的数组类能够有PHP风格的push_back功能:
arrayT<int> arr;
arr[] = 10; // == std::vector::push_back()
并且
arrayT::operator[]( size_t pos = (size_t)-1)
这是否可能? 如果是,是否也可以使用其他运算符?
我希望我的数组类能够有PHP风格的push_back功能:
arrayT<int> arr;
arr[] = 10; // == std::vector::push_back()
并且
arrayT::operator[]( size_t pos = (size_t)-1)
一个操作符函数不能有默认参数(8.3.6),除非在下面明确说明的情况下。
operator[]
应该是一个带有一个参数的非静态成员函数。
唯一允许有默认参数的操作符函数是 operator()
。而且你不能声明 operator[]
不带参数。
所以,不,你所要求的是不可能的。
push_back
的函数,我就能立即明白它的含义了。 - Joseph Mansfield