2012-12-03 77 views
0

我有以下聲明:類的朋友函數不能訪問其私有向量;

friend ostream& operator<<(ostream&,const List&); 

,我有如下定義:

ostream& operator<<(ostream& out,const List& item) { 
    vector<List::Employee>::const_iterator It; 
    for (It=item.employees.begin();It!=item.employees.end();It++) {} 
} 

員工是我的一個結構自身和員工是員工的類的私人矢量名單。編譯器給我以下錯誤:

std::vector<List::Employee,std::allocator<List::Employee>> List::employees is private 

任何想法如何解決它?

+5

哪裏是朋友聲明?記得友誼不是繼承... –

+0

它是在類的公共方法 –

+0

A *方法* ??你的意思是類的decl(列表類,順便說一句)? – WhozCraig

回答

0

朋友聲明應該在List類定義中。

class List{ 
    ... 
    friend ostream& operator<<(ostream&,const List&); 
}; 
+0

很確定,當他說「......這是在List類中聲明的時候,OP意味着什麼」。 – WhozCraig