我有这个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:
答案 0 :(得分:1)
在<<
之前加operator
并附加括号。制作operator<<(whatever)
。
这适用于其他位移运算符和其他运算符重载。
答案 1 :(得分:0)
CSVParser::operator<<(source.toStdString());
括号是必需的,这是一个函数调用。
当然,如果你没有覆盖operator<<
,那么它就更简单了:
*this << source.toStdString(); // probably what you want