【发布时间】:2017-10-08 13:18:08
【问题描述】:
我有自己的 LinkedList 类,当我在主目录中创建实例时,我收到“表达式必须具有类类型”错误。 我在 LinkedList 类中有一个默认的 c'tor。
所以当我尝试这样做时:
LinkedList<Animal> aL();
for (int i = 0; i < numOfAnimals; i++)
{
aL.addLast(*animals[i]);
}
cout << aL << endl;
它不会编译。 但如果我这样声明:
LinkedList<Animal> aL = LinkedList<Animal>();
它有效。 当然,第二个选项效率不高,我宁愿使用第一个。 谁能解释我为什么它不起作用或如何解决它? 谢谢!
【问题讨论】:
-
这是“最令人头疼的解析”的一个实例
-
LinkedList<Animal> aL();-- 这是一个函数声明。仔细看看。 -
@VittorioRomeo 据我所知,“最令人头疼的解析”这个词指的是这个更复杂的变体,比如
A a(B()); -
@lisyarus - 考虑到这不是一个官方术语,而是一个口语,我不明白为什么不扩展它。如果一个人不习惯,这一切都非常令人烦恼。
-
@lisyarus - 没问题。口语经常变化,并且随着使用而变化。
标签: c++