读书人

重载了() 的匿名对象调用()时是

发布时间: 2012-02-14 19:19:19 作者: rapoo

重载了() 的匿名对象,调用()时,是不是函数指针?
被注释掉的语句为什么通不过?由下一语句 for_each 最后一个参数是函数指针,既然是指针就应该有值,能输出。

#include <algorithm>
#include <vector>
#include <iostream>

using namespace std;

template <typename T>
class print
{
public:
void operator()(const T& elem)
{
cout < <elem < < ' ';
}
};


void show(int a)
{
cout < <a < <endl;
}
int main()
{
int ia[6]={0,1,2,3,4,5};
vector <int> iv(ia,ia+6);


for_each(iv.begin(), iv.end(), print <bool> ());
//cout < <reinterpret_cast <unsigned long> (print <bool> ());
for_each(iv.begin(), iv.end(), show);
}

[解决办法]
for_each 最后一个参数是函数指针
==========
不是
[解决办法]
print <bool> ( )是个匿名对象,不是一个函数。_Func(*_ChkFirst);调用的是operator( ).
[解决办法]
_Func

是一个能提供 func(c)

的任何东西

包含函数和对象


[解决办法]

读书人网 >C++

热点推荐