日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

C++之類模板深入學習的總結(jié)

電子設計 ? 來源:電子設計 ? 作者:電子設計 ? 2020-12-24 15:46 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

一、類模板的深入學習:

1、類模板可以定義任意多個不同的類型參數(shù)(這一點和模板函數(shù)一樣)

template < typename T1, typenaem T2 >
class Test

public:
void add(T1 a, T2 b);

//定義類對象時
Test

2、類模板可以被特化

指定類模板的特定實現(xiàn)

部分類參數(shù)必須顯示指定

根據(jù)類型參數(shù)分開實現(xiàn)類模板

特化前:

template < typename T1, typename T2 >
class Test


};

特化后:

template < typename T >
class Test < T , T >

};

3、類模板的特化類型:

部分特化:用特定的規(guī)則約束類型參數(shù)

完全特化:完全顯示指定類型參數(shù)

完全特化前:

template

完全特化后:

template < >
class Test < int, int>

};

代碼實踐:

#include

輸出結(jié)果:

root@txp-virtual-machine:/home/txp# ./a.out
void add(T1 a, T2 b)
3.5
void add(T a, T b)
10
class Test < T , T >
void add(void* a, void* b)
error to add void* parm
void add(T1* a, T2* b)
1.1

4、類模板特化注意事項:

(1)特化只是模板的分開實現(xiàn)

本質(zhì)上是同一個類模板

(2)特化類模板的使用方式是統(tǒng)一的

必須顯示指定每一個類型參數(shù)

5、類模板特化與重定義有區(qū)別嗎?函數(shù)模板可以特化嗎?

(1)重定義和特化的不同:

重定義:

--一個類模板和一個新類(或者兩個類模板)

--使用的時候需要考慮如何選擇的問題

特化:

--以統(tǒng)一的方式類使用類模板的特化類

--編譯器自動優(yōu)先選擇特化類

(2)函數(shù)模板只支持參數(shù)完全特化

函數(shù)模板特化前:

template < typename T >
bool Equal(T a, T b)

return a==b;

函數(shù)模板完全特化后:

template < >
bool Euqal

代碼實踐:

#include

輸出結(jié)果:

root@txp-virtual-machine:/home/txp# ./a.out
bool Equal(T a, T b)
1
bool Equal

注解:當需要重載函數(shù)模板時,優(yōu)先考慮使用模板特化;當模板特化無法滿足需求,再使用函數(shù)重載

二、總結(jié):

類模板可以定義任意多個不同的類型參數(shù)

類模板可以被部分特化和完全特化

特化的本質(zhì)是模板的分開實現(xiàn)

函數(shù)模板只支持完全特化

工程中使用模板特化代替類(函數(shù))重定義

好了,今天的分享就到這里,如果文章中有錯誤或者不理解的地方,可以交流互動,一起進步。我是txp,下期見!

審核編輯:符乾江
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 可編程邏輯
    +關注

    關注

    7

    文章

    529

    瀏覽量

    45470
  • C++
    C++
    +關注

    關注

    22

    文章

    2131

    瀏覽量

    77419
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    使用VectorCAST/C++的AI輔助測試功能

    從2026版本開始,VectorCAST/C++推出首批AI輔助測試功能,旨在幫助開發(fā)團隊解決單元測試過程中的兩個核心難點:
    的頭像 發(fā)表于 04-27 14:37 ?304次閱讀

    C++與lua聯(lián)合編程

    在現(xiàn)代軟件工程的龐大架構(gòu)中,純粹的 C++ 與動態(tài)腳本語言之間的關系,早已演變成一場精密的“商業(yè)分工”。C++ 扮演著提供極致性能的“底層重工業(yè)”,而 Lua 則充當著實現(xiàn)靈活業(yè)務邏輯的“輕量級
    發(fā)表于 04-19 16:27

    C++:const 的空間,常量也能占內(nèi)存?

    ] != BLACK)): return True return False c++語言5g.FsW.dgdfgsg.cnJIWWQc++語言 c++語言5g.I5y.dgdfgsg.cnJIWWQc++
    發(fā)表于 04-16 19:19

    keil實現(xiàn)cc++混合編程

    起因項目中使用到一個開源的模擬IIC的庫,封裝的比較好,但是是使用c++寫的。于是將其移植到自己的項目中,主要有以下三步操作: 在工程選項中 C/C++中去掉勾選 C99 Mode
    發(fā)表于 01-26 08:58

    C語言與C++的區(qū)別及聯(lián)系

    C語言和C++到底是什么關系? 首先C++C語言本來就是兩種不同的編程語言,但C++確實是對C
    發(fā)表于 12-24 07:23

    CC++之間的聯(lián)系

    1、語法兼容性: C++完全兼容C語言的語法,這意味著任何有效的C語言程序都可以直接在C++編譯器下編譯通過。 2、底層控制: C++
    發(fā)表于 12-11 06:51

    C語言和C++之間的區(qū)別是什么

    處理的問題時拋出異常,并在其他地方捕獲和處理這些異常。 C語言沒有內(nèi)建的異常處理機制,一般通過返回錯誤代碼或設置全局錯誤標志等方式處理錯誤。 5、標準庫支持: C++擁有豐富且強大的標準模板
    發(fā)表于 12-11 06:23

    C++程序異常的處理機制

    1、什么是異常處理? 有經(jīng)驗的朋友應該知道,在正常的CC++編程過程中難免會碰到程序不按照原本設計運行的情況。 最常見的有除法分母為零,數(shù)組越界,內(nèi)存分配失效、打開相應文件失敗等等。 一個程序
    發(fā)表于 12-02 07:12

    C/C++代碼靜態(tài)測試工具Perforce QAC 2025.3的新特性

    ?Perforce Validate?中?QAC?項目的相對/根路徑的支持。C++?分析也得到了增強,增加了用于檢測 C++?并發(fā)問題的新檢查,并改進了實體名稱和實
    的頭像 發(fā)表于 10-13 18:11 ?761次閱讀
    <b class='flag-5'>C</b>/<b class='flag-5'>C++</b>代碼靜態(tài)測試工具Perforce QAC 2025.3的新特性

    技能+1!如何在樹莓派上使用C++控制GPIO?

    在使用樹莓派時,你會發(fā)現(xiàn)Python和Scratch是許多任務(包括GPIO編程)中最常用的編程語言。但你知道嗎,你也可以使用C++進行GPIO編程,而且這樣做還有不少好處。借助WiringPi
    的頭像 發(fā)表于 08-06 15:33 ?4522次閱讀
    技能+1!如何在樹莓派上使用<b class='flag-5'>C++</b>控制GPIO?

    主流的 MCU 開發(fā)語言為什么是 C 而不是 C++

    在單片機的地界兒里,C語言穩(wěn)坐中軍帳,C++想分杯羹?難嘍。咱電子工程師天天跟那針尖大的內(nèi)存空間較勁,C++那些花里胡哨的玩意兒,在這兒真玩不轉(zhuǎn)。先說內(nèi)存這道坎兒。您當stm32f4的256kRAM
    的頭像 發(fā)表于 05-21 10:33 ?1229次閱讀
    主流的 MCU 開發(fā)語言為什么是 <b class='flag-5'>C</b> 而不是 <b class='flag-5'>C++</b>?

    基于LockAI視覺識別模塊:C++模板匹配

    /master/Cpp_example/C03_Template_Matching_more 1. 基本知識講解 1.1 多模板匹配的重要幸 目標檢測:多模板匹配可以用于檢測圖像中的多個特定對象。 應用場
    發(fā)表于 05-14 15:00

    基于LockAI視覺識別模塊:C++模板匹配

    模板匹配是一種在圖像中同時尋找多個模板的技術。通過對每個模板逐一進行匹配,找到與輸入圖像最相似的區(qū)域,并標記出匹配度最高的結(jié)果。本實驗提供了一個簡單的多模板匹配案例,并將其封裝為一個
    的頭像 發(fā)表于 05-14 14:37 ?1775次閱讀
    基于LockAI視覺識別模塊:<b class='flag-5'>C++</b>多<b class='flag-5'>模板</b>匹配

    基于LockAI視覺識別模塊:C++模板匹配

    /Cpp_example/C02_TemplateMatching 1. 基本知識講解 1.1 模板匹配的重要性 目標檢測:模板匹配可以用于檢測圖像中的特定對象。 應用場景:廣泛應用于物體識別、工業(yè)自動化
    發(fā)表于 05-13 14:40

    基于LockAI視覺識別模塊:C++模板匹配

    模板匹配是一種在圖像中尋找特定模式的技術。它通過滑動一個模板圖像(較小的圖像)在輸入圖像上進行比較,找到最相似的區(qū)域。本實驗提供了一個簡單的模板匹配案例,并將其封裝為一個自定義函數(shù)performTemplateMatching,
    的頭像 發(fā)表于 05-13 14:14 ?922次閱讀
    基于LockAI視覺識別模塊:<b class='flag-5'>C++</b><b class='flag-5'>模板</b>匹配
    金阳县| 徐水县| 汉阴县| 金山区| 大安市| 屏边| 衡山县| 仁怀市| 鹤壁市| 泸西县| 行唐县| 彰化县| 吉木乃县| 乐亭县| 鹤山市| 房产| 汝阳县| 淮阳县| 安溪县| 清苑县| 三河市| 平遥县| 巨鹿县| 太仆寺旗| 分宜县| 万山特区| 遵化市| 根河市| 含山县| 平邑县| 辽中县| 中山市| 清水县| 明光市| 岳池县| 阳谷县| 平湖市| 盘山县| 新巴尔虎右旗| 双柏县| 神农架林区|