0

クラスがあり、標準ライブラリ リストを使用してそれらのリストを保存したいと考えています。基本的に、リストを push_front() したい。だから私のコードは次のようになります:

#include <list>
/* ... lots of stuff ...*/

complexNode myObject();

std::list<complexNode> complexList();

myList.push_front(myObject);

しかし、コンパイラは次のエラーをスローします。

エラー: 非クラス型 'std::list<complexNode, std::allocator<complexNode> > ()()' である 'complexList' のメンバー 'push_front' の要求

クラス complexNode にはコピー コンストラクターがあります。

問題とそのエラーが実際に何を意味するのか本当にわかりません...助けてください!

4

2 に答える 2

6
std::list<complexNode> complexList();

これはすべきではありません:

std::list<complexNode> complexList; // without the () 
于 2009-05-21T00:58:07.160 に答える
4

これ:

std::list<complexNode> complexList();

「 C++ で最も厄介な解析」という一般名があります。つまりcomplexList、ローカル変数ではなく、リストを返す関数の宣言になっています。を削除する()と、関数として解析できなくなります。

于 2009-05-21T01:02:16.183 に答える