如何从C ++中的父类访问模板子类的数据成员

时间:2017-12-10 12:00:58

标签: c++ class templates

我正在尝试将不同类型的值存储在一个列表中。现在我在this帖子中使用@ sbi的解决方案。所以我有基类:

class Variable
{
    protected :
        std::string name;
    public :
        Variable ( std::string name ) : name( name ) { }
        virtual ~Variable () { }

        virtual Print() const = 0;
};

源于它的类

template<typename T>
class TypedVariable : public Variable
{
    protected :
        const T* value;

    public :
        TypedVariable ( TString name, const T* value )
        : Variable( name ),
          value( value ) { };

        T Value() { return *value; }

        void Print() const
        {
            std::cout << "name: " << name << "\n";
            std::cout << "value: " << *value << "\n";
        }
};

然后我将Variable存储在std::array

std::array<Variable*, size> myArray;

问题是我在这种情况下无法访问value,因为它位于TypedVariable内而不是Variable。我的问题是,如果可能,我该如何访问该字段。

0 个答案:

没有答案