我怎么称呼<<派生类中基类的运算符

时间:2013-02-09 11:54:41

标签: c++ oop operator-keyword

我有这个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:

2 个答案:

答案 0 :(得分:1)

<<之前加operator并附加括号。制作operator<<(whatever)

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

答案 1 :(得分:0)

CSVParser::operator<<(source.toStdString());

括号是必需的,这是一个函数调用。

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

*this << source.toStdString(); // probably what you want