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 に答える