我收到以下错误:
Error 1 error C2143: syntax error : missing ';' before '&'
Error 2 error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
Error 3 error C2065: 'Item' : undeclared identifier
Error 4 error C2065: 'Order' : undeclared identifier
这段代码:
template <class Item, class Order>
Iterator& DLinkedOrderedList<Item, Order>::Iterator::operator++(){}
如果我没弄错的话,上面这行是函数返回类型迭代器的正确语法&amp;?
答案 0 :(得分:2)
DLinkedOrderedList<Item, Order>::
需要Iterator
,因为类声明之外的返回类型是未知的:
template <class Item, class Order>
DLinkedOrderedList<Item, Order>::Iterator& DLinkedOrderedList<Item, Order>::Iterator::operator++(){}
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
如果您不喜欢冗长的多余内容,可以使用auto
和->
:
template <class Item, class Order>
auto DLinkedOrderedList<Item, Order>::Iterator::operator++() -> Iterator& {}