从const-ized类继承(C ++)

时间:2018-04-04 22:17:22

标签: c++ inheritance const

假设我有一个名为DataStructure的类和另一个名为ConstDataStructure的类,如下所示:

class DataStructure
{
    public:
        DataStructure();
        virtual ~DataStructure();
        unsigned char * data();

        template <class T>
        void setData(T data);

    private:
        unsigned char * data_;
}

class ConstDataStructure
{
    public:
        ConstDataStructure();
        virtual ~ConstDataStructure();
        const unsigned char * data() const;

    private:
        const unsigned char * data_;
}

我被要求“使DataStructure继承ConstDataStructure以供重用”。但是,这似乎不是一个合乎逻辑的陈述。我被教导说继承就像一个“是一个”关系,所以如果A继承自B,那就像是说“A是一个B”。在这里,它就像是说“DataStructure是一个ConstDataStructure”,似乎并非如此,因为DataStructure类具有带有setter函数的可变data_ object,而ConstDataStructure必然没有。 ConstDataStructure从DataStructure继承似乎更自然,因为它是同一种类,但它是一个更具体的实例。或者,只是不能在任何一个方向上继承,尽管这似乎是多余的。

我错了吗?请求是否合情合理?如果是这样,继承该类的常量版本是如何工作的?

0 个答案:

没有答案
相关问题