我正在尝试重构和重写遗留库的某些部分。此库具有基类,这些基类具有重复声明的相同变量名,并在派生类中使用(由复制/粘贴编程引起)。例如,我有:
var_dump(file_get_contents('contents.html'));
这种情况导致我出现问题,因为我需要将一些我需要的功能移到更通用的基类中,以便可以从中派生出 MyBaseClass 。
class MyBaseClass
{
public:
int m_nVar;
protected:
virtual void MyFunc()
{
m_nVar++;
}
public:
MyBaseClass()
{
m_nVar = 1;
}
};
class MyDerivedClass : public MyBaseClass
{
public:
int m_nVar;
protected:
virtual void MyFunc()
{
m_nVar++;
}
public:
MyDerivedClass ()
{
m_nVar = 2;
}
};
我在 MyDerivedClass 实例中进行修改后, MyFunc()不能用作原始代码(首次运行原始原因 m_nVar = 3 ,但在我修改过的代码中,它变为 m_nVar = 2 )。
我需要某种编译器错误或警告,以通知我所有出现的此类情况或任何其他解决方案,以实现我的需要。
您建议哪些在Visual Studio(VC ++)中有效?