Функция отображения в векторе указателя c

#c #vector

#c #вектор

Вопрос:

Моя задача — вычислить функцию в векторе:

  map<string, Operacija*> operacije;
  

Это строка, в которой мне нужно вычислить:

   operacije["triangle"] = new Calculation1(4.2, 7);
  

Это мой класс:

 class Operacija {
 public:
     int a;
     int b;
     Operacija(){}
     Operacija(int _a, int _b)
     {
         this->a = a;
         this->b = b;
     }    
 };
  

Должен ли я поместить операцию triangle в вектор, а затем вычислить или я должен каким-то образом создать функцию в классе для ее вычисления. Операция Calculate должна вернуть (a*b)/2 .

Комментарии:

1. Обычно можно использовать std::map<std::string, std::function<float(float, float)> и хранить в нем вызываемые объекты.

2. Можете ли вы ввести код, который я не понимаю, вот так

3. как вычисление указателя1 связано с операцией????

4. по моей ошибке это функция

5. Чтобы new Calculation1(4.2, 7) быть допустимым выражением, Calculation1 должен быть тип класса. Вы уверены, что это не так operacije["triangle"] = calculation1(4.2, 7); , и просят вас определить функцию Operacija* calculation1(double, double); ?