0

我有一个类,我想使用标准库列表来存储它们的列表。我本质上想 push_front() 列表。所以我的代码是这样的:

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

complexNode myObject();

std::list<complexNode> complexList();

myList.push_front(myObject);

但是编译器会抛出这个错误:

错误:对 'complexList' 中的成员 'push_front' 的请求,它是非类类型 'std::list<complexNode, std::allocator<complexNode> > ()()'</p>

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();

Has the common name "C++'s most vexing parse". In short, you have made complexList be the declaration of a function that returns a list, instead of a local variable. Remove the (), then it cannot be parsed as a function.

于 2009-05-21T01:02:16.183 回答