Heim > Artikel > Backend-Entwicklung > Zusammenarbeit zwischen C++-Funktionsvorlagen und Vererbung?
Durch die funktionale Vorlagenvererbung können wir neue Vorlagen aus vorhandenen Vorlagen erstellen, indem wir den Vorlagennamen als Basisklasse angeben. In Kombination mit der Vererbung bietet es die Vorteile der Wiederverwendung von Code, Flexibilität, Erweiterbarkeit und mehr.
Zusammenarbeit zwischen C++-Funktionsvorlagen und Vererbung
Einführung
Funktionsvorlagen ermöglichen es uns, Funktionen mit demselben Verhalten für verschiedene Typen zu erstellen. Durch Vererbung können wir von einer Basisklasse neue Klassen ableiten, die die Eigenschaften der Basisklasse teilen und neue Funktionen hinzufügen. Durch die Kombination dieser beiden leistungsstarken Mechanismen entsteht flexibler und wiederverwendbarer Code.
Vererbung von Funktionsvorlagen
Wir können durch Vererbung neue Funktionsvorlagen aus vorhandenen Funktionsvorlagen erstellen. Geben Sie einfach den Namen der Funktionsvorlage als Basisklasse an. Zum Beispiel:
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); } }
Praktisches Beispiel
Lassen Sie uns eine Klasse erstellen, um eine Liste von Ganzzahlen darzustellen:
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; };
Jetzt können wir die Vererbung von Funktionsvorlagen verwenden, um eine Funktion zu erstellen, die eine Liste von Ganzzahlen druckt:
// 从 print_element 继承的函数模板 template<typename T> void print_list(T list) { for (auto element : list) { print_element(element); } }
Das können wir Übergeben Sie die IntegerList
对象作为参数,并调用 print_list
-Funktion:
IntegerList myList(5); myList.add(1); myList.add(2); myList.add(3); print_list(myList); // 输出:1 2 3
Vorteile
Das obige ist der detaillierte Inhalt vonZusammenarbeit zwischen C++-Funktionsvorlagen und Vererbung?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!