C语言
C++语言
模板
c++中模板属于泛型编程,泛型允许程序员在强类型程序设计语言中编写代码时使用一些以后才指定的类型,在实例化时作为参数指明这些类型。像c++标准stl库就大量的使用了模板,模板可以屏蔽类型的差异,使代码具有更高的通用行,从而减少代码的重复率。
函数模板
template <typename type, ...>
返回值类型 函数名称(参数列表类型)
{
}
example:
template <typename T>
T const& Max (T const& a, T const& b)
{
return a > b ? a:b;
}
类模板
template <class type, ...>
class 类名
{
};
example:
template<class T>
class TSingleton
{
public:
static T* Instance();
private:
static T* mpoInstance;
private:
TSingleton();
~TSingleton();
};
模板也可以有继承
template <class type, ...>
class 类名 : public 类模板名<type...>
{
};
类的定义
定义类的时候为了结构更加紧凑,通常类中也定义类型:
还可以加入命名空间
#define STATE_NAMESPACE_START namespace state {
#define STATE_NAMESPACE_END }
STATE_NAMESPACE_START
class CState
{
enum ERunType
{
};
typedef std::list<int*> DescIterType;
class CDesc
{
};
};
STATE_NAMESPACE_END
利用虚函数
类只关联依赖抽象类,而不是具体的实现。利用设计模式达到代码复用可扩展。