日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

C++模板超詳細介紹_C 語言

作者:AKA.瞳源治 ? 更新時間: 2022-11-03 編程語言

1.前言

模板是泛型編程的基礎,泛型編程即以一種獨立于任何特定類型的方式編寫代碼。

模板是創建泛型類或函數的藍圖或公式。

通常有兩種形式:函數模板和類模板;

2.函數模板

函數模板針對僅參數類型不同的函數

一般形式為:

template <類型形式參數表> 
類型 函數名( 形式參數表)
{
   // 函數的主體
}

函數調用實例:

#include <iostream>
#include <string>
using namespace std;
template <typename T>
inline T const& Max(T const& a, T const& b)
{
	return a < b ? b : a;
}
int main()
{
	int x1 = 114514;
	int x2 = 121212;
	cout << "Max: " << Max(x1, x2) << endl;//隱式調用
    int x3 = 114514;
	int x4 = 'a';
    //cout << "Max: " << Max(x3, x4) << endl;//無法通過編譯
	cout << "Max: " << Max<int>(x3, x4) << endl;//顯示調用 
	double f1 = 13.5;
	double f2 = 24.6;
	cout << "Max: " << Max(f1, f2) << endl;
	string s1 = "Yuta";
	string s2 = "Rokka";
	cout << "Max: " << Max(s1, s2) << endl;
	return 0;
}

根據此樣例我們得注意:

1. 函數模板分為兩種調用方式:

顯示模板實參調用(顯示調用),隱式模板實參調用(隱式調用)。

2.隱式調用不需要顯示給出模板參數,直接經過參數推演進行調用。

3. 顯示調用則不需要推演直接根據顯示給出的模板參數進行調用。

x3和x4因為類型不同,在比較中因為函數無法從這兩個參數中進行類型推演,所以不能進行。

所以一般建議調用時采取顯示調用,便于代碼的理解和維護。

結果:

3.類模板

類模板針對僅數據成員和成員函數類型不同的類。

對于類模板的使用而言,沒有隱式模板實參和顯式模板實參使用的說法,因為類模板的使用必須顯示指明模板實參。

一般形式為:

template <class type> 
class 類名 {
.
.
.
}

樣例:

#include <iostream>
using namespace std;
template<typename T>
class A {
private:
	T num;
public:
	A() 
	{
		num = T(6.6667);
	}
	void print() 
	{
		cout << "num:" << num << endl;
	}
};
int main() {
	A<int> a; //顯示模板實參的隱式實例化
	a.print();
}

需要注意,此時我們調用模板類的時候,必須是以顯示調用的方式來進行,不然會經典報錯。

解決方法便是顯示給出模板參數 啦

樣例結果:

原文鏈接:https://blog.csdn.net/qq_64109690/article/details/126695513

欄目分類
最近更新