表达式必须具有类类型(指针向量)

时间:2019-06-02 19:27:04

标签: c++

我有一个错误,说“列”必须具有类类型。

vector<Column*>是指针的向量,其中Column是抽象类,因为我的列可以是intdoublestring类型。

class Table {

    vector<Column*> _columns;
    Column* value;
    char* name;

public:
    Table() {...}

    Table(char* name) {...}

    ~Table() {...}

    template <typename T>
    void addColumn(vector<T> v) {
        auto column = DataColumnFactory::getColumn();
        column.get()->addValuesToVector(v);
        _columns.push_back(move(column));
    }


    int findLongestColumn() {
        int length = 0;
        for (auto &column : _columns) {
            if (length < column.get()->lengthOfColumn()) //ERROR
                length = column.get()->lengthOfColumn();
        }
    }
};

1 个答案:

答案 0 :(得分:1)

似乎问题在于您正在访问.get()对象的Column方法,该方法是一个指针(编译器抱怨这不是类类型。)只需更改{{1} }到.get