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; }