首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

类型转换有关问题

2012-02-29 
类型转换问题!#includeiostream#includestring#includevector#includesstream#includealgorithm

类型转换问题!

#include<iostream>
#include<string>
#include<vector>
#include<sstream>
#include<algorithm>
#include<functional>
using namespace std;


class printElem {
private:
  int _n;
  int _cnt;
  int _sum;
public:
  printElem(int n = 5) : _n(n), _cnt(0), _sum(0) {}
  void operator() (int elem) 
  {
  ++_cnt;
  _sum += elem;  
  cout << elem;
  (_cnt % _n) ? cout << " " : cout << endl;
 }

  operator int() { return _sum; }//这一句话是将printElem 转换为了int ?我不明白是如何的转换的!请解释
};

int main() {
  vector<int> ivec;
  
 for(int i = 0; i != 20; ++i) 
  ivec.push_back(i);
   
int sum=for_each(ivec.begin(), ivec.end(), printElem());  
  cout << "sum is " << sum << endl;
}

[解决办法]
class xx
{
operator int(){}// 重载了转换操作符 
// operator type() type是想转换的内置类型名或者类类型名,{}内是你要的操作
}
[解决办法]
他转换成 int型的_sum成员

给分。。。

热点排行