继承抽象模板类有什么好处吗?

时间:2012-12-04 17:42:49

标签: class templates inheritance abstract base

我的意思是做以下事情:

template<class Type> class Foo {
public:
... // Code Here.
};

class Bar : public Foo<Type> {
public:
...
};

当声明类Bar时,其中 Type 实际上是一个类型(int,bool等等)或者之前创建的类型。

如果这个问题太模糊,或者问题已经得到解答,请告诉我。

1 个答案:

答案 0 :(得分:0)

语言功能是否有用,实际上取决于使用的方式和位置。对于从模板化的抽象模板继承,这是我能想到的一个假设场景,可能有用。

template <typename Type> class Gadget {
public:
    string name() = 0;
};

class SmartPhone : public Gadget<Phone> {
public:
    string name() { return "I am a smart phone"; }
};

class SportsCar : public Gadget<Car> {
public:
    string name() { return "I am a sports car"; }
};

vector<Gadget*> inventory;
inventory.push_back(new SmartPhone());
inventory.push_back(new SportsCar());
// etc ...

请注意,这可能不是实现它的最佳方式,但我的观点是,您始终可以找到一些用途。 :)

相关问题