2013-08-01 46 views
1
template<typename Type> class SingleList; 

template<typename Type> class ListNode{ 
private: 
    friend typename SingleList<Type>; 
    //this line appears"expected a qualified name after 'typename'" 

    ListNode():nextNode(NULL){} 

    ListNode(const Type item,ListNode<Type> *next=NULL):nodeData(item),nextNode(next){} 

    ~ListNode(){ 
     nextNode=NULL; 
} 

public: 
     Type GetData(); 
     friend ostream& operator<< <Type>(ostream& ,ListNode<Type>&); 

private: 
     Type nodeData; 
     ListNode *nextNode; 
}; 

的代碼之後:預期限定名「類型名稱」

friend typename SingleList<Type>; 

預期「類型名稱」和如何解決這個問題後合格的名稱。謝謝。

+0

相關:http://stackoverflow.com/questions/610245/where-and-why-do-i-have-to-put-the-template-and-typename-keywords – RiaD

回答

4

你想

friend class SingleList<Type>; 

typename可以用來代替class模板參數聲明中,但不是無處不在。

+0

是的,它可以根據那。謝謝。^^ – tonysok