C++ 表达式必须具有指向对象的指针类型(指针向量)

C++ 表达式必须具有指向对象的指针类型(指针向量),c++,C++,在我的函数Delete中,我有一个错误,指出getTableColumns必须有一个指向对象类型的指针 类列是一个抽象类 class Table { vector<Column*> _columns; Column* value; char* name; public: vector<Column*> getTableColumns() { return _columns; } void Delete(char*

在我的函数
Delete
中,我有一个错误,指出
getTableColumns
必须有一个指向对象类型的指针

类列是一个抽象类

class Table {

    vector<Column*> _columns;
    Column* value;
    char* name;
public:
    vector<Column*> getTableColumns() {
        return _columns;
    }

void Delete(char* name, int columnNumber, string thisValue) {
    for (int i = 0; i <= findLongestColumn(); i++) {
                if ((string)thisValue.compare((string)(getTableColumns()
                     [columnNumber]->getColumnValues()[i])) == 0)//!!!error
                {...}    
        }
}

类表{
向量列;
列*值;
字符*名称;
公众:
向量getTableColumns(){
返回_列;
}
void Delete(char*name,int columnNumber,string thisValue){
对于(int i=0;i getColumnValues()[i]))==0)/!!!错误
{...}    
}
}
模板
类DataColumn:公共列{
向量值;
公众:
void getColumnValues()
{
返回值;
}

列::getColumnValues
被声明为
无效
,但您返回一个值,然后将其索引到结果中。

您认为
[columnNumber]
是什么意思?@Mari getTableColumns是一个没有参数的函数。因此这个表达式getTableColumns([columnNumber]->getColumnValues()[i])没有意义。为什么要用c风格将已经是字符串的字符串转换为字符串?[columnNumber]是iteratorYe gods。
如果((string)thisValue.compare((string)(getTableColumns()[columnNumber]->getColumnValues()[i])==0)template <typename T>
class DataColumn : public Column {

    vector<T> values;

public:
    void getColumnValues()
    {
        return values;
    }