我有一个从类 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 should callA::A()
来改变m_foo
and m_bar
(inb
为 10 和 30。因此,我应该打印“10; 30”而不是“0; 1”。
非常感谢您的帮助,