QwtPlotCurve の QList を作成したいと思います。この理由は、後で QwtPlot からそれらを削除できるようにするためです。次のコードがあります。
QList<QwtPlotCurve> myList = new QList<QwtPlotCurve>;
QwtPlotCurve* curve1 = new QwtPlotCurve();
QwtPlotCurve* curve2 = new QwtPlotCurve();
curves->append(curve1);
curves->append(curve2);
コードはコンパイルされず、コンパイラは次のように出力します。
エラー: 'QList ' から非スカラー型 'QList' への変換が要求されました
エラー: 'QList::append(QwtPlotCurve &)' void QList::append(const T&) [with T = QwtPlotCurve]の呼び出しに一致する関数がありません
注: 候補は次のとおりです。
注: void QList::append(const T&) [with T = QwtPlotCurve]
注: 'QwtPlotCurve*' から 'const QwtPlotCurve&' への引数 1 の既知の変換はありません
注: void QList::append(const QList&) [with T = QwtPlotCurve]
注: 'QwtPlotCurve*' から 'const QList&' への引数 1 の既知の変換はありません
...
QwtPlotCurve は一定であるべきだと言っていますが、どう対処すればよいかわかりません。曲線を QList に保存してから (ユーザーの要求に応じて) プロットから削除することが正しいアプローチであるかどうかもわかりません。
sjwarner の回答の後、次のことを試しました。
QList<QwtPlotCurve*> curves;
QwtPlotCurve* curve1 = new QwtPlotCurve();
QwtPlotCurve* curve2 = new QwtPlotCurve();
curves->append(curve1);
curves->append(curve2);
次のエラーが発生しました。
エラー: '->' のベース オペランドに非ポインター型 'QList' があります エラー: '->' のベース オペランドに非ポインター型 'QList' があります
私はこのエラーを次のように理解しました。curve は QList であり、QList へのポインターである必要があります。
私が試してみると:
QList<QwtPlotCurve*>* curves = new QList<QwtPlotCurve*>;
QwtPlotCurve* curve1 = new QwtPlotCurve();
QwtPlotCurve* curve2 = new QwtPlotCurve();
curves->append(curve1);
curves->append(curve2);
それは正常に動作します。「新しい」演算子を取り除くために、sjwarner によって指摘された「暗黙の共有」を見ていきます。