Como acessar a variável privada do objeto instanciado dentro da classe
Estou tentando alterar uma variável privada de uma classe dentro de um objeto, que é inicializado dentro dessa classe. Minha intenção pode ser extraída do exemplo simples abaixo. aIncrement
chamado deobj
deve aumentar oBaseClass::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;
}
Uma maneira de pensar é passar coisas como parâmetro paraobj.Increment()
.
Existe uma maneira de conseguir isso sem passar como parâmetro?