关于auto_ptr、空类、函数对象的简介
1、auto_ptr,是安全指针类。用途:比如在一个函数的开始处new了一个对象的指针。在函数的某个部分这个函数没有释放这个指针的对象就return了,导致内存泄露。如果用这个指针就不会出现这个问题。它会处理这种情况。
2、空类
所谓空类,指没有数据成员,没有函数的类。下面定义的这个类就是空类:
class PlaceHolder {};
它有什么用呢?1、它可以作为一个要定义但还没有定义的类的占位符。例如,它可以被用作临时性的接口类,作为其它类的基础;不用等待全部实现都完成。可以参照观察者模式的改进版本。2、空类还能被用于在类之间强加派生关系,这种关系最初没有从基类祖先传下来,这被称为自底向上设计。3、它还可以被用于为哑变量创建类型以便区分函数不同的重载版本。事实上,操作符new就是像这样重载的:
#include<iostream>
using namespace std;
int main()
{
try
{
int *p = new int[100]; //new 的标准异常抛出版本
}
catch(bad_alloc & new_failure)
{
cout<<__FILE__<<__LINE__<<new_failure.what()<<endl;
return 1;
/*..*/
}
int *p = new (nothrow) int [100]; // new 的标准异常释放版本;如果失败,则返回 NULL
if (p)
{
//nothrow就是一个空类
/*..*/
}
return 0;
}
3、函数对象
简单的说函数对象就是一个类对象。这个类定义了定义了应用操作符operator()。
具体可以参考http://www.cnblogs.com/ly4cn/archive/2007/07/21/826885.html
顺便看了他写的C#与C++代码混合之类。C++0x。。很多很多
就是咱孤陋寡闻啊,看看也要看看泛型编程,函数编程者列的。STL,boost

浙公网安备 33010602011771号