我在 C++ 中有两个类,其中一个继承自另一个:
class A {
public:
virtual void Initialize(){
m_MyString = "Default value";
}
protected:
string m_MyString;
}
class B : public A {
public:
void Initialize(){
A::Initialize();
m_MyString = "New Value";
}
}
上面的B类和这个有区别吗?
class B : public A {
public:
void Initialize(){
A::Initialize();
A::m_MyString = "New Value";
}
}
似乎使用范围运算符会导致字符串有垃圾,对吗?我在想当它覆盖时,A::m_MyString 与 B::m_MyString 不同。这甚至有意义吗?
我看到变量在 A 中设置,然后当我们返回 B 时,有垃圾。这与“隐藏”与覆盖有关吗?