我有一個C類B繼承自類A.我可能會錯過一個重要的OOP概念,這當然很瑣碎,但我不明白我怎麼可以,後B的實例,可使用A內B的構造函數來重新分配新值只從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()
應該調用A::A()
到的m_foo
和m_bar
(在b
)的值改變爲10和30,分別。 因此,我應該打印「10; 30」而不是「0; 1」。
非常感謝您的幫助,
感謝您的快速回復。這說得通:)。 – 2013-04-20 22:18:20