顾名思义:他是一个函数;基于相同代码,处理不同类型(类)
例子:
template<typename FoodType>
FoodType* createFood(std::string name ,int price)
{
FoodType* pFood = new FoodType();
pFood->setPrice(price);
return pFood;
}
这个函数创建一个类型为FoodType的对象,返回指向该对象的指针。这个FoodType可以是自定义的类型,比如 Apple或者Banana
class Food
{
protected:
int m_price;
std::string m_name;
public:
Food(const std::string& name):m_name(name)
{
m_price = 0;
}
void setPrice(int price)
{
m_price = price;
}
};
class Apple
{
public:
Apple(const std::string& name);
void sell();
};
class Banana
{
public:
Banana(const std::string& name);
void sell();
};下面使用模板:
Banana* banana = createFood<Banana>("banana",8);Apple* appel = createFood<Apple>("apple",10);
这样就利用模板得到了一个指向Apple或者Banana类型对象的指针.
本文介绍了一个模板函数createFood的实现及应用示例。该函数能够创建不同类型的食物对象,并设置价格。通过模板机制,此函数适用于多种自定义食物类,如Apple和Banana。
2294

被折叠的 条评论
为什么被折叠?



