子クラスのメンバにアクセスしない保証があるという前提の場合、型が親クラスの変数のポインタを子クラスのポインタにstatic_castでダウンキャストしてもいいのでしょうか?
親クラスのprotectedなメンバに子クラスの静的メンバ関数からアクセスしたいのですがこれが不可能らしいので子クラスのポインタに親クラスの変数のポインタをstatic_castで子クラスのポインタにダウンキャストして入れています。
今のところ動いてはいるのですが単にバグが顕在化していないだけだと後々困るので確認したいのです。
以下やりたい事のコード
class A
{
protected:
int test;
};
class B
: public A
{
public:
static void Func(A* a)
{
B* ptr=static_cast<B*>(a);
ptr->test=0;
}
};