精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

C++模板坑,一起來issue

開發 后端
C++開發中通常將類定義放在C ++頭文件(.h)中,并將實現放在C ++源文件(.cpp)中。然后,將源文件作為項目的一部分,這意味著將其單獨編譯。但是,當我們對模板類實施此過程時,將出現一些編譯和鏈接問題。本文闡述了三種可能的解決方案,幫助大家可以在實現該模板的源文件中創建一個模板類的對象,解決上述問題。

[[329857]]

C++開發中通常將類定義放在C ++頭文件(.h)中,并將實現放在C ++源文件(.cpp)中。然后,將源文件作為項目的一部分,這意味著將其單獨編譯。但是,當我們對模板類實施此過程時,將出現一些編譯和鏈接問題。

本文闡述了三種可能的解決方案,幫助大家可以在實現該模板的源文件中創建一個模板類的對象,解決上述問題。

問題復現

頭文件聲明:

 

  1. // temp.h 
  2. #ifndef _TEMP_H_ 
  3. #define _TEMP_H_ 
  4. #include <iostream> 
  5. #include <vector> 
  6. template <typename T> 
  7. using Vec = std::vector<T>; 
  8. #define PRINTFMT(x) std::cout << x << " "
  9.  
  10. template <typename T> 
  11. void TestTemp(const Vec<T> &v, T target); 
  12. #endif 

頭文件實現:

 

  1. #include "temp.h" 
  2.  
  3.  
  4. template <typename T> 
  5. void TestTemp(const Vec<T> &v, T target) 
  6.     [=]() { 
  7.         for (auto elem : v) 
  8.             if (elem == target) 
  9.                 PRINTFMT(elem); 
  10.     }(); 

報錯:

 

  1. undefined reference to.... 

問題描述:當在.h中聲明了模板,.cpp中定義了模板,當main函數去進行模板實例化的時候,在聲明處找不到對應的T類型,自然就出問題了。

1.第一種:同一文件

聲明及定義都在.h文件中。

 

  1. // temp.h 
  2. #ifndef _TEMP_H_ 
  3. #define _TEMP_H_ 
  4. #include <iostream> 
  5. #include <vector> 
  6. template <typename T> 
  7. using Vec = std::vector<T>; 
  8. #define PRINTFMT(x) std::cout << x << " "
  9.  
  10. template <typename T> 
  11. void TestTemp(const Vec<T> &v, T target) 
  12.     [=]() { 
  13.         for (auto elem : v) 
  14.             if (elem == target) 
  15.                 PRINTFMT(elem); 
  16.     }(); 
  17. #endif 

2.第二種:分離開+引入頭文件

采用頭文件聲明,cpp定義,要想起作用,得在使用處引入兩者并且定義處得用特化版本。

例如:

頭文件實現:

 

  1. // Temp.cpp 
  2. #include "temp.h" 
  3.  
  4. void TestTemp(const Vec<int> &v, int target) 
  5.     [=]() { 
  6.         for (auto elem : v) 
  7.             if (elem == target) 
  8.                 PRINTFMT(elem); 
  9.     }(); 
  10.  
  11. template <typename T> 
  12. void TestTemp(const Vec<T> &v, T target) 
  13.     [=]() { 
  14.         for (auto elem : v) 
  15.             if (elem == target) 
  16.                 PRINTFMT(elem); 
  17.     }(); 

實現:

 

  1. #include "temp.h" 
  2. #include "temp.cpp" 
  3.  
  4. int main() { 
  5.     std::vector<int> v{1,2,3}; 
  6.     int target = 2; 
  7.     TestTemp<int>(v,target); 
  8.  
  9.     return 0; 

3.在末尾引入cpp

只需要在.h頭文件末尾引入cpp即可。

頭文件只需要聲明:

 

  1. // temp.h 
  2. #ifndef _TEMP_H_ 
  3. #define _TEMP_H_ 
  4. #include <iostream> 
  5. #include <vector> 
  6. template <typename T> 
  7. using Vec = std::vector<T>; 
  8. #define PRINTFMT(x) std::cout << x << " "
  9.  
  10. template <typename T> 
  11. void TestTemp(const Vec<T> &v, T target); 
  12. #include "temp.cpp" 
  13. #endif 

頭文件定義即可:

 

  1. // Temp.cpp 
  2. #include "temp.h" 
  3.  
  4. template <typename T> 
  5. void TestTemp(const Vec<T> &v, T target) 
  6.     [=]() { 
  7.         for (auto elem : v) 
  8.             if (elem == target) 
  9.                 PRINTFMT(elem); 
  10.     }(); 

調用處正常調用:

 

  1. #include "temp.h" 
  2.  
  3. int main() { 
  4.     std::vector<int> v{1,2,3}; 
  5.     int target = 2; 
  6.     TestTemp<int>(v,target); 
  7.  
  8.     return 0; 

在一些開源項目中,這種方式比較常見,只不過這里的.cpp得改為.hpp。其余不變!

4.總結

本節針對日常代碼中的難點進行了梳理,提出了幾種解決方案。可以簡單的把模板理解為一種特殊的宏,模板類不要當作類,在被實例化的時候一定得找到定義,不然只看到聲明,就GG了。

責任編輯:龐桂玉 來源: C語言與C++編程
相關推薦

2012-06-25 09:37:24

Web

2012-04-14 20:47:45

Android

2012-11-08 17:33:53

智慧云

2021-06-09 08:15:50

volatileJava開發

2010-05-21 17:32:07

IIS服務器

2009-10-29 16:32:34

Oracle表空間

2021-06-02 15:30:12

Synchronize并發多線程

2021-04-26 11:18:15

FedoraLinuxBug

2012-09-10 13:42:55

PHP項目管理

2011-09-07 22:59:07

聯想一體機

2022-05-20 12:14:50

ZuulSpringClou

2010-05-10 15:31:35

Unix文件

2009-07-14 16:35:57

Swing組件大全

2012-07-10 09:14:51

Web

2009-09-09 09:23:37

服務器穩定性

2021-07-28 14:15:51

漏洞懸賞平臺漏洞谷歌

2017-11-02 15:28:52

2017-11-02 14:39:54

2014-02-11 11:21:00

html5工具
點贊
收藏

51CTO技術棧公眾號

国产乱理伦片在线观看夜一区 | 亚洲香蕉在线观看| 亚洲国产精品无码观看久久| 丰满少妇一级片| 999在线观看精品免费不卡网站| 日韩av在线电影网| 久久久精品三级| 中文字幕在线播放网址| 大白屁股一区二区视频| 欧美整片在线观看| 尤物在线免费视频| silk一区二区三区精品视频| 色屁屁一区二区| 一区二区三区四区| 免费a视频在线观看| 日韩精品成人一区二区在线| 久久久精品久久| chinese麻豆新拍video| yiren22亚洲综合| 最新欧美精品一区二区三区| 国产亚洲精品美女久久久m| 久操视频在线免费观看| 欧美激情精品久久久六区热门| 日韩国产精品一区| 亚洲免费av一区| 人狥杂交一区欧美二区| 亚洲欧美韩国综合色| 农村寡妇一区二区三区| 国产高中女学生第一次| 黄色日韩在线| 日韩在线观看高清| 久久久久亚洲av片无码v| 樱花草涩涩www在线播放| 国产午夜精品一区二区三区四区| 91一区二区三区| 日本一区二区三区久久| 午夜在线观看免费一区| 色综合色综合网色综合| av资源在线免费观看| 色狼人综合干| 精品处破学生在线二十三| 九九视频精品在线观看| 1stkiss在线漫画| 欧美激情在线观看视频免费| 亚洲一区二区中文| 在线免费看91| 久久婷婷亚洲| 51ⅴ精品国产91久久久久久| 欧美成人黄色网| 国产精品精品国产一区二区| 亚洲性生活视频| 极品人妻一区二区三区| 国产suv精品一区二区四区视频| 色综合久久中文综合久久牛| 丁香花在线影院观看在线播放| 国产在线观看a| 国产精品久久久久久妇女6080 | 欧美精品一二| 亚洲成人av中文字幕| 少妇愉情理伦片bd| 激情久久99| 欧美日韩亚洲综合一区二区三区| 亚洲 中文字幕 日韩 无码| 亚洲美女久久精品| 欧美视频一二三| 欧美午夜小视频| 国产探花视频在线观看| 亚洲五码中文字幕| 欧美激情亚洲天堂| av网站网址在线观看| 亚洲欧美激情在线| 中文字幕在线亚洲三区| 欧美精品hd| 中文字幕在线不卡视频| 国产欧美自拍视频| 中文字幕中文字幕在线中高清免费版| 欧美经典一区二区三区| 亚洲午夜精品久久久久久浪潮| 粉嫩av一区| 国产精品久久久久久久岛一牛影视| 神马影院我不卡| 欧美被日视频| 夜夜精品浪潮av一区二区三区 | 你懂的视频一区二区| 欧美另类在线播放| 日本在线观看视频网站| 亚洲在线黄色| 国产免费一区二区三区香蕉精| 国产又粗又黄又爽视频| 国产成人免费视频 | 视频国产精品| 亚洲激情视频在线播放| 美女爆乳18禁www久久久久久 | 久久精品一二三区| 蜜桃免费在线| 国产精品不卡在线| 日韩黄色片在线| 超级白嫩亚洲国产第一| 欧美性猛交xxxxx水多| 97公开免费视频| 4438全国亚洲精品观看视频| 一本色道久久综合亚洲精品小说 | www.亚洲.com| 亚洲国产精品欧美一二99 | 高清在线成人网| 日韩aⅴ视频一区二区三区| 黄色av电影在线播放| 欧美日韩国产综合视频在线观看中文| 天天综合网久久| 香蕉久久99| 欧美黑人极品猛少妇色xxxxx | 日本va欧美va精品| 国产精品一区二| 黄色网址视频在线观看| 日韩欧美在线国产| 中国特级黄色片| 日韩av大片| 日产精品99久久久久久| 国产 欧美 自拍| 亚洲欧美日韩一区二区| 91精品91久久久中77777老牛| 亚洲精品一区二区三区中文字幕 | 擼擼色在线看观看免费| 欧美一级欧美一级在线播放| 国产精品www爽爽爽| 新67194成人永久网站| 亚洲最大激情中文字幕| 日韩三级影院| 欧美伊人精品成人久久综合97 | 国产精品美女一区二区| 男人亚洲天堂网| 欧美精品国产白浆久久久久| 欧美片一区二区三区| 夜夜爽8888| 国产精品嫩草影院av蜜臀| 免费看黄色一级大片| 欧美男gay| 91成人福利在线| 人人妻人人玩人人澡人人爽| 亚洲综合久久久| 中文字幕无码毛片免费看| 999国产精品永久免费视频app| 国产精品久久久久影院日本| 国产三级视频在线| 欧美综合亚洲图片综合区| 精品人妻无码一区二区三区换脸| 国产手机视频一区二区| 久久99久久99精品蜜柚传媒| 免费成人在线电影| 日韩精品极品毛片系列视频| 日韩久久中文字幕| 久久一二三国产| 妞干网在线免费视频| 免费一区二区三区视频导航| 日本国产一区二区三区| 黄色电影免费在线看| 在线中文字幕一区| 午夜精品久久久久99蜜桃最新版| 蜜臀精品久久久久久蜜臀| 中文字幕精品—区二区日日骚| 青青国产精品| 免费av一区二区| 黄色美女一级片| 欧美特级www| 美国黑人一级大黄| 久久99久久精品| 丁香色欲久久久久久综合网| 18国产精品| 日韩美女av在线免费观看| 国产高清一级毛片在线不卡| 欧美日韩亚洲不卡| 丁香花五月激情| av在线不卡免费看| 欧美 日韩精品| 99精品全国免费观看视频软件| 91综合免费在线| 99爱在线视频| 一区二区三区久久精品| 国产精品国产av| 亚洲va韩国va欧美va| 色婷婷av777| 精品一区二区免费在线观看| www.日本在线视频| 国产麻豆一区二区三区精品视频| 国产视频福利一区| 91超碰在线播放| 一区二区三区国产视频| 精品国自产在线观看| 欧美视频免费在线| 91porn在线视频| 久久网这里都是精品| 亚洲精品mv在线观看| 一二三区精品| 这里只有精品66| 老汉色老汉首页av亚洲| 国产伦精品免费视频| yellow在线观看网址| 最近2019年中文视频免费在线观看| av观看在线免费| 色系网站成人免费| 久草中文在线视频| 国产精品久久久久久久久快鸭 | 国产精品久久久99| 亚洲欧美日韩色| 看电视剧不卡顿的网站| 成熟丰满熟妇高潮xxxxx视频| 久久精品国产68国产精品亚洲| 国产欧美欧洲| 日本高清精品| 国产精品男人的天堂| 欧美aa在线| 欧美大片第1页| 米奇精品一区二区三区| 亚洲片国产一区一级在线观看| 精品人妻一区二区三区浪潮在线| 欧美性欧美巨大黑白大战| 日韩av一二三区| 一区二区三区四区不卡在线 | 香港伦理在线| 亚洲人成绝费网站色www| 成人两性免费视频| 黄色动漫在线观看| 中文字幕一精品亚洲无线一区| 少妇av在线播放| 欧美一卡二卡三卡| 一级α片免费看刺激高潮视频| 色综合 综合色| 久久久久久久黄色片| 亚洲一区二区美女| 丁香花五月激情| 中文字幕在线不卡国产视频| 日本一道本视频| 久久精品视频在线免费观看 | 日韩精品成人在线观看| 国产欧美在线看| 久久99国产精品二区高清软件| 欧美一级高清免费| 麻豆视频在线看| 午夜精品在线视频| 波多野结衣在线观看| 久久99久国产精品黄毛片入口| 成人在线播放| 久久久www成人免费精品张筱雨 | 欧美极品在线视频| 污污网站在线观看| 欧美疯狂xxxx大交乱88av| 一区二区三区伦理| 久久91精品国产| 菠萝蜜视频在线观看www入口| 欧美成人网在线| 后进极品白嫩翘臀在线播放| 久久久之久亚州精品露出| 草美女在线观看| 91国自产精品中文字幕亚洲| aa国产成人| 欧美综合在线观看| 欧美日韩不卡| 国产精品入口福利| 亚洲男人在线| caoporn国产精品免费公开| 欧美经典一区| 国产一区二区高清不卡| 日韩超碰人人爽人人做人人添| 欧美日韩免费精品| 成人精品亚洲| 97av中文字幕| 亚洲日本视频| 韩国中文字幕av| 加勒比av一区二区| 日本黄色www| av不卡在线观看| 久久午夜精品视频| 一区二区三区四区在线免费观看| 国产真人真事毛片| 色偷偷一区二区三区| 一级爱爱免费视频| 欧美日韩亚洲一区二区三区在线| 国产在线精品一区二区三区| 亚洲视频分类| 一区二区在线观看网站| 国产精品多人| 乱子伦视频在线看| 国产一区三区三区| 黄色在线观看av| 综合av第一页| 日本高清www免费视频| 欧美午夜精品电影| 蜜臀久久精品久久久久| 国产一区二区黄| 欧美xxxx少妇| 国产精品爽爽爽爽爽爽在线观看| 日韩欧美中文在线观看| 欧美二区在线看| 欧美+日本+国产+在线a∨观看| 日韩欧美国产免费| 国产综合成人久久大片91| 一级做a爰片毛片| 亚洲啪啪综合av一区二区三区| wwwxxx亚洲| 日韩一级高清毛片| 国产理论电影在线观看| 久久久久成人网| 亚洲成人高清| 日本在线免费观看一区| 亚洲国产裸拍裸体视频在线观看乱了中文 | 久久91精品国产91久久小草| www.男人天堂| ㊣最新国产の精品bt伙计久久| 国产精品一区无码| 欧美videofree性高清杂交| 91九色在线porn| 欧美专区第一页| 成人另类视频| 艳母动漫在线观看| 免费成人小视频| 精品人妻无码一区二区三区| 一区二区在线观看av| 亚洲一区二区色| 亚洲免费人成在线视频观看| 黄色羞羞视频在线观看| 亚洲bt天天射| 久久蜜桃av| 污视频免费在线观看网站| 国产日韩欧美高清| 中文字幕一区二区人妻视频| 亚洲精品国产精品国产自| heyzo高清中文字幕在线| 99九九电视剧免费观看| 天天做天天爱天天爽综合网| 三级在线免费看| 中文字幕第一区第二区| 蜜臀尤物一区二区三区直播| 亚洲精品国产综合久久| 18video性欧美19sex高清| 欧美一区二区三区电影| 久久中文字幕无码| 欧美高清dvd| 日本三级视频在线播放| 国产精品丝袜一区二区三区| 精品一级毛片| 亚洲天堂av线| 国产欧美日本一区二区三区| 成人a v视频| 国产小视频国产精品| 在线一区视频观看| 日韩欧美精品一区二区三区经典| 视频一区二区国产| 一级在线观看视频| 欧美日韩精品是欧美日韩精品| 91大神在线网站| 成人黄色影片在线| 女人香蕉久久**毛片精品| 成年人看片网站| 亚洲成人动漫av| 五月婷婷狠狠干| 日韩女优在线播放| 成人一级毛片| 中文国产在线观看| 亚洲影视在线播放| 污视频在线免费观看| 日韩av毛片网| 久久国产小视频| 91性高潮久久久久久久| 亚洲影视资源网| 美女做暖暖视频免费在线观看全部网址91| 日本国产欧美一区二区三区| 成人免费av| 国产精品igao网网址不卡| 一区av在线播放| 四虎精品成人影院观看地址| 日韩av免费网站| 亚洲区综合中文字幕日日| 亚洲乱妇老熟女爽到高潮的片| 精品久久久久久久久久久久久 | 波多野结衣家庭教师在线播放| 久久综合999| 国产精品无码一区二区桃花视频| 欧美精品在线免费| 日韩电影不卡一区| 伊人国产在线视频| 亚洲成人在线网站| 9色在线视频网站| av成人观看| 久久亚洲风情| 好吊色视频在线观看| 日韩精品亚洲元码| 日本黄色成人| 99精品在线免费视频| 国产精品高潮呻吟| 神宫寺奈绪一区二区三区| 国产精品露脸自拍| 狠狠久久婷婷| 日本黄区免费视频观看| 精品久久久久久久久久久久久久久| 色老太综合网| 欧美在线观看黄| 久久精品网站免费观看| 国产 日韩 欧美 综合| 国产精品无av码在线观看| 激情国产一区|