機能的なテンプレートの継承により、テンプレート名を基本クラスとして指定することで、既存のテンプレートから新しいテンプレートを作成できます。継承と組み合わせることで、コードの再利用、柔軟性、拡張性などの利点が得られます。
#C 関数テンプレートと継承の間の協調関係
はじめに
関数テンプレート異なる型に対して同じ動作を行う関数を作成できます。継承により、基本クラスの特性を共有し、新しい機能を追加する新しいクラスを基本クラスから派生できます。これら 2 つの強力なメカニズムを組み合わせることで、柔軟で再利用可能なコードが作成されます。関数テンプレートの継承
継承を通じて、既存の関数テンプレートから新しい関数テンプレートを作成できます。関数テンプレートの名前を基本クラスとして指定するだけです。例:template<typename T> void print_element(T element) { std::cout << element << std::endl; } // 从 print_element 继承的新函数模板 template<typename T> void print_list(T list) { for (auto element : list) { print_element(element); } }
実用的なケース
整数のリストを表すクラスを作成しましょう:class IntegerList { public: IntegerList(int size) { list = new int[size]; } ~IntegerList() { delete[] list; } void add(int element) { list[size++] = element; } private: int* list; int size = 0; };これで、関数テンプレートを使用できるようになります。への継承 整数のリストを出力する関数を作成します:
// 从 print_element 继承的函数模板 template<typename T> void print_list(T list) { for (auto element : list) { print_element(element); } }
IntegerList オブジェクトをパラメータとして渡して、
print_list 関数を呼び出すことができます:
IntegerList myList(5); myList.add(1); myList.add(2); myList.add(3); print_list(myList); // 输出:1 2 3
利点
以上がC++ 関数テンプレートと継承の間の連携?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。