C++ には 2 つのクラスがあり、一方は他方から継承されます。
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 に戻るとガベージが表示されます。これは「非表示」とオーバーライドに関係していますか?