2015-05-19 103 views
1

我試圖重載< <運營商爲模板,我得到這個錯誤。模板,敵不過「運算符<<」在「出來<<‘(’」

我試圖實現超載運營< <,將提供開放托架,通過separeted所有選項卡項目「」閉架‘出’

這裏是我的代碼部分:

template <typename T> 
class arry{ 
    T *tab; 
    int n; 
public: 
    arry(T *t, int x) : n(x),tab(t){}; 
    friend std::ostream & operator << (const std::ostream & out, const arry<T> & t) 
    { 
     out << "("; 
     for(int i=0;i<t.n;i++){ 
      out << t.tab[i]; 
      if(i < t.n-1) 
       out << ", "; 
     } 
     out << ")"; 
     return out; 
    } 
}; 

而最糟糕的部分是我的構建日誌爲我提供了23 0錯誤行,在這一點上我有點困惑。

回答

6

該運算符是爲了修改流,所以第一個參數不能是const的引用。將其更改爲

friend std::ostream & operator << (std::ostream & out, const arry& t)