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

重载了() 的匿名对象,调用()时,是不是函数指针?解决办法

2012-02-14 
重载了() 的匿名对象,调用()时,是不是函数指针?被注释掉的语句为什么通不过?由下一语句for_each最后一个参

重载了() 的匿名对象,调用()时,是不是函数指针?
被注释掉的语句为什么通不过?由下一语句   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)

的任何东西

包含函数和对象


[解决办法]

热点排行