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

Vir*_*721 3 c++ default operator-overloading operator-keyword

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

arrayT<int> arr;
arr[] = 10; // == std::vector::push_back()
Run Code Online (Sandbox Code Playgroud)

arrayT::operator[]( size_t pos = (size_t)-1)
Run Code Online (Sandbox Code Playgroud)

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

Jos*_*eld 7

除非下面明确说明,否则运算符函数不能具有默认参数(8.3.6).

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

唯一允许具有默认参数的运算符函数是operator().你不能宣称operator[]不参加任何争论.

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