1

つまり、次のことを行います。

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

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

クラスBarを宣言するときのTypeは、実際にはタイプ(int、boolなど)または事前に作成されたタイプです。

この質問があいまいすぎる場合、または既に回答済みの場合はお知らせください。

4

1 に答える 1

0

言語機能が役立つかどうかは、それをどこでどのように使用するかにかかっています。テンプレート化された抽象テンプレートから継承するために、私が考えることができる 1 つの架空のシナリオを次に示します

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 ...

これはおそらく最良の実装方法ではないことに注意してください。:)

于 2012-12-04T17:56:56.263 に答える