Wie auf eine private Variable von einem innerhalb der Klasse instanziierten Objekt zugegriffen wird

Ich versuche, eine private Variable einer Klasse innerhalb eines Objekts zu ändern, die innerhalb dieser Klasse initialisiert wird. Meine Absicht lässt sich aus dem folgenden einfachen Beispiel ableiten. dasIncrement angerufen vonobj sollte das @ erhöhBaseClass::stuff.

template <typename ObjectType>
class BaseClass{
 public:

  int Increment(){
    return obj.Increment();
  }

 private:
  int stuff = 0;
  ObjectType obj;
};

class ObjectType{
  public:     
   int Increment ()
   {
      return BaseClass<ObjectType>::stuff++;
   };
};

int main () {
  BaseClass<ObjectType> base;
  base.Increment(); // should increase stuff by 1;
}

Eine Möglichkeit, die ich mir vorstellen kann, besteht darin, Dinge als Parameter an @ zu übergebeobj.Increment().

Gibt es eine Möglichkeit, dies zu erreichen, ohne es als Parameter zu übergeben?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage