無題

          拿個學位是騙自己的。學問是一輩子的。

          統計

          留言簿(3)

          閱讀排行榜

          評論排行榜

          C++練習代碼之1

           1#include <iostream> 
           2#include <vector> 
           3#include <algorithm> 
           4#include <string> 
           5
           6using namespace std; 
           7
           8template<typename T> 
           9class Sum
          10  private
          11    T val; 
          12  public
          13  Sum(T i) :val(i)
          14  }
          ;
          15  operator T() const
          16    return val; 
          17  }
          ;
          18  T operator()(T i)
          19    return val+=i; 
          20  }

          21  T getVal()
          22    return val; 
          23  }
          ;
          24  friend ostream& operator<< (ostream &out,const Sum<T> &s)
          25    return out << s.val; 
          26  }
          ;
          27}

          28
          29int main(int argc, char* argv[])
          30  vector<string> v; 
          31  v.push_back(string("1")); 
          32  v.push_back(string("2")); 
          33  v.push_back(string("3"));
          34  cout << "the sum is " << for_each(v.begin(), v.end(), Sum<string>("")) << "\n";
          35  system("PAUSE"); 
          36  return EXIT_SUCCESS; 
          37}
          ;  
          38

          這里面的那個重載<<的寫法,自己也還沒搞懂原因,只是試出來的,為什么要加那個friend關鍵字才能編譯通過呢?不加編譯器報的錯又是什么意思呢?希望有誰懂的能解釋下...

          posted on 2008-01-25 22:04 閱讀(307) 評論(0)  編輯  收藏 所屬分類: My Program

          主站蜘蛛池模板: 封丘县| 监利县| 邹平县| 洪雅县| 阿鲁科尔沁旗| 淮南市| 重庆市| 会宁县| 新疆| 金沙县| 泽普县| 晴隆县| 仙桃市| 云霄县| 铜梁县| 开化县| 马龙县| 怀安县| 蓝山县| 淳化县| 岱山县| 荆门市| 谢通门县| 鞍山市| 周宁县| 陆川县| 丰宁| 杭锦旗| 乐亭县| 乌拉特后旗| 金门县| 修水县| 龙岩市| 晋城| 四子王旗| 花莲县| 盐津县| 武陟县| 五大连池市| 五台县| 罗定市|