泛型程式設計的簡介

2021-10-02 15:07:06 字數 951 閱讀 5959

泛型程式設計是一種新的程式設計思想,基於模板技術有效的將演算法和資料結構分離。泛型程式設計是指編寫完全一般化並惡意重複使用的演算法。就是指具有在多種資料型別上皆可操作,在c++上就是使用模板實現。

例如:我們要實現各個資料型別的最大值。需要寫如下的函式過載。

int max(int a, int b)

float max(float a, float b)

double max(double a, double b)

long max(long a, long b)

使用基於c++中提供的泛型程式設計思想,模板的方法可以使用如下的方式替代。這裡的class不代表物件的類,而是型別(可以使用typename替代)這樣max函式的各個引數以及返回值的型別都為t,對於任意型別的兩個數,我們都可以呼叫max求大小。

另外,t作為函式引數以及函式的返回值型別,他幾乎可以是任意型別,也可以是類。當然這個類需要過載">"操作符。

如下示例:

#include "stdafx.h"

#include using namespace std;

#if 1

//template template //typename 也可以使用class代替

t max(t a, t b)

#endif

int main()

值得注意的是 max(3, 2.4),由於引數中包含兩種資料型別,編譯器就不清楚到底該呼叫哪一種版本的max函式。編譯的時候會報出如下的錯誤。所以需要 max(3, 2.4)使用int指定型別為int。 

**的測試結果:

max value:2

max value:2.6

max value:2.3456

max value:d

max value:3

請按任意鍵繼續. . .

泛型程式設計簡介

1 資料結構課程的特點 專注於資料元素之間的關係 專注於特定結構之上的演算法 資料結構課程並不關注資料元素的具體型別 如何為資料結構的學習選擇合適的語言?唐老師經驗 支援泛型程式設計的語言是最適合資料結構課程的學習。2 泛型程式設計的概念 不考慮具體資料型別的程式設計方式。c 中的函式模板 1 一種...

泛型程式設計簡介

資料結構課程的特點 專注於資料元素之間的關係 專注於特定結構之上的演算法 資料結構課程並不關注資料元素的具體型別。泛型程式設計的概念 不考慮具體資料型別的程式設計方式 對於swap函式可以考慮下面的泛型寫法 void swap t a,t b swap泛型寫法中的t不是乙個具體的資料型別,而是泛指任...

8 泛型程式設計簡介

目錄 1.資料結構的特點 2.泛型程式設計的概念 3.c 中的函式模板 4.函式模板的語法規則 5.函式模板的使用 6.c 中的類模板 7.類模板的應用 8.小結 問題 如何為資料結構的學習選擇合適的語言?經驗分享 支援泛型程式設計的語言最適合資料結構可能得學習?不考慮具體資料型別的程式設計方式 對...