1

QObjectの動的配列を作成する別の方法はありますか?次のコードはコンパイルされません。

QStringList labels = defaultScene->getLabels();
QAction* traceActions = new QAction[labels.size()];

エラーは次のとおりです。

C2512:'QAction':適切なデフォルトコンストラクターが利用できません

4

1 に答える 1

1

QActionにはデフォルトのコンストラクターがないため、これが表示されます。

QActionへのポインターの配列を作成してから、各QActionを独自にインスタンス化することができます。

大まかに次のようなもの:

QAction** actions = new (QAction*)[labels.size()];
for(size_t i = 0; i<labels.size(); ++i)
{
  actions[i] = new QAction(constructor params ...);
}
于 2012-11-26T01:34:46.010 に答える