C++ - 关于多态性的问题,child 中的受保护变量

问题描述 投票:0回答:0

请问如何在继承类中访问父类的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;
    }

}
c++ oop polymorphism
© www.soinside.com 2019 - 2024. All rights reserved.