Tworzenie zmiennej funkcji wskaźnika klasy, która wskazuje na niestatyczną funkcję członka klasy

Celem jest posiadanie zmiennej składowej_AddValue wskazują naCreateFirstValue funkcja po inicjalizacji klasy i po pierwszym wywołaniuAddValue, wywołają się wszystkie przyszłe wywołaniaCreateAnotherValue.

Wcześniej miałem singielAddValue funkcja z kontrolą warunkową, aby określić, którą funkcję wywołać. Jednak wydaje mi się, że wdrożenie jest wadliwe, ponieważ toif sprawdzanie będzie występować za każdym razem i wydaje się, że wskaźnik funkcji byłby tutaj korzystny.

Przykład:

class Foo
{
 private:
  int _value;
  void (*_AddValue)(int value); // Pointer to function member variable

  void CreateFirstValue(int value)
  {
    _value = value;
    _AddValue = &CreateAnotherValue;
  }

  void CreateAnotherValue(int value)
  {
    // This function will create values differently.
    _value = ...;
  }

 public:
  // Constructor
  Foo()
   : _value(0), _AddValue(CreateFirstValue)
  {
  }

  AddValue(int value) // This function is called by the user.
  {
    _AddValue(value);
  }
};

Powyższy kod nie jest rzeczywistym kodem, tylko przykładem tego, co próbuję osiągnąć.

teraz mam błąd:argument of type void (BTree::)(int) does not match void (*)(int)

questionAnswers(2)

yourAnswerToTheQuestion