Как получить доступ к закрытой переменной из объекта, созданного внутри класса

Я пытаюсь изменить закрытую переменную класса внутри объекта, которая инициализируется внутри этого класса. Мое намерение можно извлечь из простого примера ниже.Increment звонил изobj следует увеличитьBaseClass::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;
}

Один из способов, которым я могу придумать, - передать материал какobj.Increment().

Есть ли способ, которым я могу достичь этого, не передавая его в качестве параметра?