您的位置:首页 > 编程语言 > C语言/C++

可调用对象与function

2015-09-08 18:26 483 查看
function的头文件为utility,其用法为:`std::function<retype (p1,p2)> f;`f为返回值为retype,形参为p1,p2的可调用对象,其可为函数,类的调用函数,lambda表达式

delete t时,指针t内存的值是一个地址,delete后该地址对应的内容就被释放了,但是t还存在,其值还是那个地址


class DebugDelete
{
public:
DebugDelete(std::ostream &s = std::cerr):os(s){}  //流无法被拷贝
template<typename T> void operator()(T* t)const
{
os << "deleting ptr" << std::endl;
delete t;//指针t内存的值是一个地址,delete后该地址对应的内容就被释放了,但是t还存在,其值还是那个地址
}
private:
std::ostream &os;//流无法被拷贝
};
//可调用对象的用法
int _tmain(int argc, _TCHAR* argv[])
{
int *i = new int(42);
DebugDelete d;
d(i);
//std::function<void(int*)> d = DebugDelete();
//d(i);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息