类型转换问题!
#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成员
给分。。。