Поделиться через


Ошибка компилятора C3470

"тип": класс не может одновременно иметь и индексатор (индексированное свойство по умолчанию), и operator[]

Тип не может задавать и индексатор по умолчанию, и оператор[].

Пример

Следующий пример приводит к возникновению ошибки C3470:

// C3470.cpp
// compile with: /clr
using namespace System;

ref class R {
public:
   property int default[int] {
      int get(int i) {
         return i+1;
      }
   }

   int operator[](String^ s) { return Convert::ToInt32(s); }   // C3470
};

int main() {
   R ^ r = gcnew R;
   // return r[9] + r["32"] - 42;
}