Pour un code comme celui-ci :
class foo {
protected:
int a;
public:
class bar {
public:
int getA() {return a;} // ERROR
};
foo()
: a (p->param)
};
J'obtiens cette erreur :
invalid use of non-static data member 'foo::a'
actuellement la variable a
est initialisée dans le constructeur de foo
.
si je le rend statique, alors il dit:
error: 'int foo::a' is a static data member; it can only be initialized at its definition
Cependant, je souhaite transmettre une valeur à a
dans le constructeur.
Quelle est la solution alors?