無題

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

          統(tǒng)計

          留言簿(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關(guān)鍵字才能編譯通過呢?不加編譯器報的錯又是什么意思呢?希望有誰懂的能解釋下...

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

          主站蜘蛛池模板: 南丰县| 绵阳市| 外汇| 奉节县| 靖宇县| 阿勒泰市| 鄯善县| 莱芜市| 湖南省| 嘉义县| 玉龙| 邛崃市| 茌平县| 内黄县| 鹿邑县| 响水县| 新河县| 太白县| 雷波县| 双牌县| 岗巴县| 北宁市| 保靖县| 甘孜县| 平远县| 桂林市| 禄劝| 阳信县| 共和县| 北票市| 邵东县| 科技| 东辽县| 册亨县| 张家川| 顺义区| 娄烦县| 长岭县| 平安县| 聂拉木县| 隆化县|