ホームページ >バックエンド開発 >C++ >C++ テンプレートの継承を使用するにはどうすればよいですか?

C++ テンプレートの継承を使用するにはどうすればよいですか?

WBOY
WBOYオリジナル
2024-06-06 10:33:17791ブラウズ

C++ テンプレートの継承により、テンプレート派生クラスが基本クラス テンプレートのコードと機能を再利用できるようになり、コア ロジックは同じだが特定の動作が異なるクラスを作成するのに適しています。テンプレートの継承構文は次のとおりです。 template class Derived : public Base { }。例: テンプレート クラス Base { }; テンプレート 派生: public Base;実際のケース: 派生クラス Derived を作成し、基本クラス Base のカウント関数を継承し、現在のカウントを出力する printCount メソッドを追加しました。

C++ テンプレートの継承を使用するにはどうすればよいですか?

C++ テンプレートの継承

テンプレートの継承を使用すると、基本クラス テンプレートのコードと機能を派生クラスで再利用できます。これは、同じコア ロジックを共有するが、特定の動作が異なるクラスを作成する場合に便利です。

構文

template<typename T>
class Base {
  // 基类模板代码
};

template<typename T>
class Derived : public Base<T> {
  // 派生类模板代码
};

インスタンス

単純なカウンターを実装する次の Base テンプレート クラスがあるとします。 Base 模板类,它实现了简单的计数器:

template<typename T>
class Base {
public:
    Base() : count(0) {}
    void increment() { ++count; }
    T getCount() const { return count; }
    
private:
    T count;
};

现在,我们想创建一个 Derived 类,它继承了 Base 的计数功能,但还增加了打印当前计数的附加方法:

template<typename T>
class Derived : public Base<T> {
public:
    void printCount() const { cout << "Count: " << getCount() << endl; }
};

实战案例

以下是使用 C++ 模板继承的实战案例:

#include <iostream>

int main() {
    Derived<int> counter;
    counter.increment();
    counter.increment();
    counter.printCount(); // 输出: Count: 2
    
    return 0;
}

在这个示例中,我们创建了一个 C++ 模板继承的 Derived 类实例,它提供了 Base 类的计数功能,并增加了 printCountrrreee

次に、Derived code> クラス。 <code>Base のカウント関数を継承しますが、現在のカウントを出力する追加メソッドも追加します。 🎜rrreee🎜🎜実用的なケース🎜🎜🎜 以下は、を使用した実際的なケースです。 C++ テンプレートの継承:🎜 rrreee🎜 この例では、C++ テンプレートによって継承された Derived クラスのインスタンスを作成します。これは、Base クラスのカウント関数を提供し、 printCount メソッドを使用して、現在のカウントを出力します。 🎜

以上がC++ テンプレートの継承を使用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。