跟著做的C++20教程-例項21-最簡單的函式模板
阿新 • • 發佈:2021-02-19
技術標籤:跟著做的C++20教程c++
目錄
例項概要
- 介紹模板概念
例項程式碼
#include <iostream>
#include <string>
template<typename T> void printT(T p1);
int main(int argc, char** argv)
{
int i = 0;
double d = 1.3;
std::string c = "I am a string";
printT(i);
printT(d);
printT(c) ;
return 0;
}
template<typename T> void printT(T p1)
{
std::cout << "Value of T is \"" << p1 << "\"" << std::endl;
}
執行結果
Value of T is “0”
Value of T is “1.3”
Value of T is “I am a string”
例項解釋
- 模板
在程式設計中我們會遇到某些功能在處理流程上是一樣的,只不過應用的型別不同。最典型的就是排序,同樣的排序演算法可以對int
double
或其他型別變數進行排序。因此同樣的排序程式碼真對不同型別都要編寫一遍。為了避免這個問題C++提供了模板概念使程式設計師在程式設計時可以遮蔽型別帶來的影響。 模板會根據需要生成不同型別的函式或類。 - 模板的宣告和定義
模板以關鍵字template
開始。後跟<模板引數>
,每個模板引數用typename
來定義,模板引數之間用逗號分隔。之後就與正常的函式或類沒有區別了。只是在編寫之後的類和函式時可以使用模板引數
代替變數型別。
如例項中template<typename T> void printT(T p1)
,有一個模板引數T
,T
在實際呼叫時被替換成了int
、double
std::string
。
模板引數
可以有多個如:template<typename T, typename K, typename V> void printT(T p1)