最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C++模板超詳細(xì)介紹

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

1.前言

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

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

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

2.函數(shù)模板

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

一般形式為:

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

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

#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)用方式:

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

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

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

x3和x4因?yàn)轭愋筒煌?,在比較中因?yàn)楹瘮?shù)無法從這兩個(gè)參數(shù)中進(jìn)行類型推演,所以不能進(jìn)行。

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

結(jié)果:

3.類模板

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

對(duì)于類模板的使用而言,沒有隱式模板實(shí)參和顯式模板實(shí)參使用的說法,因?yàn)轭惸0宓氖褂帽仨氾@示指明模板實(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; //顯示模板實(shí)參的隱式實(shí)例化
	a.print();
}

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

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

樣例結(jié)果:

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

相關(guān)文章

  • 詳解c++ 繼承

    詳解c++ 繼承

    這篇文章主要介紹了c++ 繼承的相關(guān)資料,文中講解非常細(xì)致,代碼幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-07-07
  • 使用C++開發(fā)一個(gè)串口讀寫軟件的實(shí)現(xiàn)步驟

    使用C++開發(fā)一個(gè)串口讀寫軟件的實(shí)現(xiàn)步驟

    這篇文章主要介紹了使用xmake(一個(gè)項(xiàng)目管理工具兼包管理工具)和asio2(一個(gè)asio的框架,可以實(shí)現(xiàn)輕松各種網(wǎng)絡(luò)應(yīng)用,一般支持tcp,udp,http,websocket,rpc,ssl,icmp,serial_port.)來快速的開發(fā)個(gè)串口讀寫軟件(整合例程),需要的朋友可以參考下
    2025-04-04
  • C語言修煉之路悟徹?cái)?shù)組真妙理?巧用下標(biāo)破萬敵下篇

    C語言修煉之路悟徹?cái)?shù)組真妙理?巧用下標(biāo)破萬敵下篇

    在C語言和C++等語言中,數(shù)組元素全為指針變量的數(shù)組稱為指針數(shù)組,指針數(shù)組中的元素都必須具有相同的存儲(chǔ)類型、指向相同數(shù)據(jù)類型的指針變量。指針數(shù)組比較適合用來指向若干個(gè)字符串,使字符串處理更加方便、靈活
    2022-02-02
  • C語言手把手教你實(shí)現(xiàn)貪吃蛇AI(上)

    C語言手把手教你實(shí)現(xiàn)貪吃蛇AI(上)

    這篇文章主要介紹了C語言手把手教你實(shí)現(xiàn)貪吃蛇AI,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • C語言操作符超詳細(xì)講解下篇

    C語言操作符超詳細(xì)講解下篇

    C?語言提供了豐富的操作符,有:算術(shù)操作符,移位操作符,位操作符,賦值操作符,單目操作符,關(guān)系操作符,邏輯操作符,條件操作符等。本篇為第二篇,讓我們通讀本篇來詳細(xì)了解吧
    2022-04-04
  • C語言循環(huán)隊(duì)列的表示與實(shí)現(xiàn)實(shí)例詳解

    C語言循環(huán)隊(duì)列的表示與實(shí)現(xiàn)實(shí)例詳解

    這篇文章主要介紹了C語言循環(huán)隊(duì)列的表示與實(shí)現(xiàn),對(duì)于數(shù)據(jù)結(jié)構(gòu)與算法的研究很有幫助,需要的朋友可以參考下
    2014-07-07
  • 如何用矩形法(梯形法)求定積分

    如何用矩形法(梯形法)求定積分

    思路就是將積分區(qū)間劃分成n等份,然后將這n等份近似看成矩形(或梯形),然后對(duì)所有的矩形(或梯形)的面積進(jìn)行求和
    2013-09-09
  • C++?測試框架GoogleTest入門介紹

    C++?測試框架GoogleTest入門介紹

    這篇文章主要為大家介紹了C++測試框架GoogleTest入門基礎(chǔ),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-04-04
  • C++中的常量定義小結(jié)

    C++中的常量定義小結(jié)

    在C++中,并不提倡使用#define定義一個(gè)常量。#define本質(zhì)上是一個(gè)預(yù)處理器指令,它僅僅表示使用一個(gè)串代替別一個(gè)串而已。也就是說,#define定義的常量從未被編譯器看到——它們?cè)诰幾g器開始處理源碼之前就被移走了
    2015-08-08
  • vscode中配置LeetCode插件的教程(愉快刷題)

    vscode中配置LeetCode插件的教程(愉快刷題)

    這篇文章主要介紹了vscode中配置LeetCode插件的教程,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2020-03-03

最新評(píng)論

临洮县| 郧西县| 桐乡市| 咸丰县| 花垣县| 西安市| 仙游县| 岳池县| 湖州市| 集贤县| 东阿县| 怀化市| 许昌市| 德阳市| 莫力| 青州市| 渭源县| 西华县| 久治县| 西畴县| 招远市| 吴忠市| 德江县| 罗平县| 永寿县| 永修县| 顺昌县| 陆丰市| 碌曲县| 建阳市| 北碚区| 竹溪县| 墨江| 广平县| 夏津县| 崇阳县| 富宁县| 普洱| 静安区| 潼南县| 工布江达县|