无题

拿个学位是骗自己的。学问是一辈子的。

统计

留言簿(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 阅读(298) 评论(0)  编辑  收藏 所属分类: My Program


只有注册用户登录后才能发表评论。


网站导航: