// bolgcontent.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <iostream>
#include <string>
//仿函数
//一、函数指针和函数引用
//例如:
#include <typeinfo>
void foo()
{
std::cout<<"foo() called"<<'\n';
}
typedef void FooT();//FooT 是一个函数类型
int _tmain(int argc, _TCHAR* argv[])
{
foo();//直接调用
std::cout<<"Types of foo:"<<typeid(foo).name()<<'\n';
std::cout<<"Types of foo:"<<typeid(FooT).name()<<'\n';
FooT *pf=foo;//隐式转型
pf();//通过指针的间接调用
(*pf)();//等价于pf()
//输出pf的类型
std::cout<<"Types of foo:"<<typeid(pf).name()<<'\n';
FooT & rf=foo;//没有隐士转换
rf();//通过引用的间接调用
//输出rf的类型
std::cout<<"Types of foo:"<<typeid(rf).name()<<'\n';
return 0;
}
// bolgcontent.cpp : 定义控制台应用程序的入口点。
//