クラス A から継承された C++ クラス B があります。おそらく OOP の重要な概念を見逃しており、これは確かに非常に些細なことですが、B のインスタンス化後、B 内で A のコンストラクターを使用して再割り当てする方法がわかりません。A から継承されたローカル変数のみに新しい値:
クラスA
class A{
public:
A(int a, int b){
m_foo = a;
m_bar = b;
}
protected:
int m_foo;
int m_bar;
};
クラスB
class B : public A{
public:
B(int a, int b, int c):A(a,b),m_loc(c){};
void resetParent(){
/* Can I use the constructor of A to change m_foo and
* m_bar without explicitly reassigning value? */
A(10,30); // Obviously, this does not work :)
std::cout<<m_foo<<"; "<<m_bar<<std::endl;
}
private:
int m_loc;
};
主要
int main(){
B b(0,1,3);
b.resetParent();
return 1;
}
この特定の例では、b.resetParent()
which を呼び出してと(in )A::A()
の値をそれぞれ 10 と 30 に変更します。したがって、「0; 1」ではなく「10; 30」と出力する必要があります。m_foo
m_bar
b
ご助力ありがとうございます、