Как получить доступ к закрытой переменной из объекта, созданного внутри класса
Я пытаюсь изменить закрытую переменную класса внутри объекта, которая инициализируется внутри этого класса. Мое намерение можно извлечь из простого примера ниже.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()
.
Есть ли способ, которым я могу достичь этого, не передавая его в качестве параметра?