请问如何在继承类中访问父类的protected变量。从示例中会更加明显。不然怎么解决。我想避免将变量更改为 public 或使用 getters。
class CNumber
{
public:
virtual void normalize(CNumber &src) = 0;
..
protected:
map<size_t, size_t> m_Digits;
size_t m_FloatingPoint;
bool m_Negative;
};
class CDenseNumber : public CNumber
{
public:
virtual void normalize(CNumber &src) override;
...
}
void CDenseNumber::normalize(CNumber &src)
{
size_t zeroes = abs(static_cast<long long>(m_FloatingPoint - src.m_FloatingPoint));
if(m_Digits.size() > src.m_Digits.size())
{
for (size_t i = 0; i < zeroes; ++i)
src.m_Digits.insert(src.m_Digits.begin(), make_pair(i, 0));
src.m_FloatingPoint += zeroes;
}
}