'тип вызываемого объекта не является функцией или указателем функции' при использовании оператора () из указателя - PullRequest
0 голосов
/ 27 мая 2020

У меня есть контейнерный класс, в котором я перегружал оператор (), и я пытаюсь использовать его как способ доступа к элементам в контейнере, как если бы вы использовали двухмерный массив

class Container{
   class Node{
   public:
      int x, y;
      dataClass* object;
   }
   Node* first; //pointer to list
public:
   T* operator()(int, int) {
      //returns object with given x, y
   }
}

И в моем основном файле я хочу сделать что-то подобное с контейнером

Container* c = new Container();
//pushing elements in the container
int a, b; //random ints that represent indexes i want to access
c(a,b)->info = "something"; //info being some member in dataClass

Но при этом я получаю ошибку called object type 'Container *' is not a function or function pointer при компиляции. Есть ли способ сделать это без необходимости опускать указатель на контейнер или добавлять другие элементы, выполняющие выражение (например, (*c)(a,b)?

...