1

我有这个CSVParser类,我继承了它,我需要<<在派生类中调用运算符:

#include "dbcsv.h"

DbCsv::DbCsv() : CSVParser()
{
}


void addColumn(QString &source, const QString &val, const unsigned int s) // 0:duplicate, 1:unique
{
     CSVParser::<< source.toStdString();
}

void removeColumn(QString &source, const QString &val)
{

}

我收到此错误:

dbcsv.cpp: In function 'void addColumn(QString&, const QString&, unsigned int)':
dbcsv.cpp:10: error: expected unqualified-id before '<<' token
dbcsv.cpp: At global scope:
4

2 回答 2

1

前面<<加上operator括号。使operator<<(whatever).

这适用于其他位移运算符和其他运算符重载。

于 2013-02-09T12:00:40.233 回答
0
CSVParser::operator<<(source.toStdString());

括号是强制性的,这是一个函数调用。

当然,如果你没有覆盖operator<<,那么它更简单:

*this << source.toStdString(); // probably what you want
于 2013-02-09T11:58:15.403 回答