保護されたメンバーを持つ抽象基本クラスがある場合、派生クラスにのみ読み取りアクセスを提供するにはどうすればよいですか?
私の意図を説明するために、最小限の例を示します。これが基本クラスです。
class Base
{
public:
virtual ~Base() = 0;
void Foo()
{
Readonly = 42;
}
protected:
int Readonly; // insert the magic here
};
これは派生クラスです。
class Derived : public Base
{
void Function()
{
cout << Readonly << endl; // this should work
Readonly = 43; // but this should fail
}
};
残念ながらconst
、基本クラスで変更できる必要があるため、メンバーを使用できません。意図した動作をどのように生成できますか?