欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C++模板超詳細介紹

 更新時間:2022年09月09日 10:34:09   作者:AKA.瞳源治  
C++語言的模板技術(shù)包括函數(shù)模板和類模板,模板技術(shù)是一種代碼重用技術(shù),函數(shù)和類是C++語言中兩種主要的重用代碼形式,這篇文章主要介紹了C++函數(shù)模板和類模板,需要的朋友可以參考下

1.前言

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

模板是創(chuàng)建泛型類或函數(shù)的藍圖或公式。

通常有兩種形式:函數(shù)模板和類模板;

2.函數(shù)模板

函數(shù)模板針對僅參數(shù)類型不同的函數(shù)

一般形式為:

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

函數(shù)調(diào)用實例:

#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;//隱式調(diào)用
    int x3 = 114514;
	int x4 = 'a';
    //cout << "Max: " << Max(x3, x4) << endl;//無法通過編譯
	cout << "Max: " << Max<int>(x3, x4) << endl;//顯示調(diào)用 
	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;
}

根據(jù)此樣例我們得注意:

1. 函數(shù)模板分為兩種調(diào)用方式:

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

2.隱式調(diào)用不需要顯示給出模板參數(shù),直接經(jīng)過參數(shù)推演進行調(diào)用。

3. 顯示調(diào)用則不需要推演直接根據(jù)顯示給出的模板參數(shù)進行調(diào)用。

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

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

結(jié)果:

3.類模板

類模板針對僅數(shù)據(jù)成員和成員函數(shù)類型不同的類。

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

一般形式為:

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();
}

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

解決方法便是顯示給出模板參數(shù) 啦

樣例結(jié)果:

到此這篇關(guān)于C++模板超詳細介紹的文章就介紹到這了,更多相關(guān)C++模板內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C++單一職責原則示例代碼淺析

    C++單一職責原則示例代碼淺析

    我們在設(shè)計一個類時要學會發(fā)現(xiàn)職責,并把那些職責相互分離,其實要去判斷是否應該分離出一個類來并不難,前面說過,一個類應該只有一個引起它變化的原因,如果你能想到其它的原因也能去改變這個類,那么這個類就具有多于1個的職責,就應該考慮類的職責分離
    2023-02-02
  • C++?AnimeGAN實現(xiàn)照片一鍵動漫化

    C++?AnimeGAN實現(xiàn)照片一鍵動漫化

    AnimeGAN是是由神經(jīng)網(wǎng)絡風格遷移加生成對抗網(wǎng)絡(GAN)而成,它是基于CartoonGAN的改進,并提出了一個更加輕量級的生成器架構(gòu)。本文將介紹如何運用AnimeGAN實現(xiàn)照片一鍵動漫化,需要的可以參考一下
    2021-11-11
  • 詳解C++設(shè)計模式編程中對狀態(tài)模式的運用

    詳解C++設(shè)計模式編程中對狀態(tài)模式的運用

    這篇文章主要介紹了C++設(shè)計模式編程中對狀態(tài)模式的運用,狀態(tài)模式允許一個對象在其內(nèi)部狀態(tài)改變時改變它的行為,對象看起來似乎修改了它的類,需要的朋友可以參考下
    2016-03-03
  • C語言數(shù)據(jù)結(jié)構(gòu)與算法時間空間復雜度基礎(chǔ)實踐

    C語言數(shù)據(jù)結(jié)構(gòu)與算法時間空間復雜度基礎(chǔ)實踐

    這篇文章主要為大家介紹了C語言數(shù)據(jù)結(jié)構(gòu)與算法中時間空間復雜度的基礎(chǔ)實踐,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步
    2022-02-02
  • 詳解C語言如何計算結(jié)構(gòu)體大小(結(jié)構(gòu)體的內(nèi)存對齊)

    詳解C語言如何計算結(jié)構(gòu)體大小(結(jié)構(gòu)體的內(nèi)存對齊)

    結(jié)構(gòu)體的內(nèi)存對齊是有關(guān)結(jié)構(gòu)體內(nèi)容的很重要一個知識點,主要考察方式是計算結(jié)構(gòu)體的字節(jié)大小,所以本文就給大家詳細介紹一下C語言如何計算結(jié)構(gòu)體大小,文中的代碼示例介紹的非常詳細,需要的朋友可以參考下
    2023-07-07
  • C++ 內(nèi)聯(lián)函數(shù)inline案例詳解

    C++ 內(nèi)聯(lián)函數(shù)inline案例詳解

    這篇文章主要介紹了C++ 內(nèi)聯(lián)函數(shù)inline案例詳解,本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下
    2021-09-09
  • C語言實現(xiàn)簡單學生成績管理系統(tǒng)

    C語言實現(xiàn)簡單學生成績管理系統(tǒng)

    這篇文章主要為大家詳細介紹了C語言實現(xiàn)簡單學生成績管理系統(tǒng),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • windows下如何安裝OpenCL

    windows下如何安裝OpenCL

    這篇文章主要介紹了windows下如何安裝OpenCL,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-05-05
  • C語言進階之文件操作詳解

    C語言進階之文件操作詳解

    這篇文章主要為大家詳細介紹了C語言進階之文件操作,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-02-02
  • 一張圖總結(jié)C++中關(guān)于指針的那些事

    一張圖總結(jié)C++中關(guān)于指針的那些事

    今天小編就為大家分享一篇關(guān)于一圖總結(jié)C++中關(guān)于指針的那些事,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-02-02

最新評論