抽象基本クラスの保護されたデータメンバーにアクセスする際に問題があります。保護されたデータへのアクセス - >
class A {
public:
//func_xy()=0;
//...
protected:
int id;
//...
};
は、今私は、抽象基底クラスAを継承:私は次のような構造を持っていると言う
class B: public A {
public:
func_xy();
//...
private:
void func_b();
std::vector<A*> vec_a;
//...
};
//...
void B::func_b() {
A& _a = *vec_a[0];
//doesn't work, class A has no member named ‘_a‘...
int id1 = this->_a.id;
//doesn't work, expected unqualified-id before ‘(’...
int id2 = this->(_a.id);
}
I`mではなく、問題が残っている参照のポインタを使用している場合。 保護されたデータメンバーを取得する手口はありますか?
は 'この置き換え - _a.id''と> _ a.id'を。 '_a'はクラス変数ではなくローカル変数であることに注意してください。 –
残念なことに、マーティンが指摘したように、 – FloHe
を追加してください。 – Peter