精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

久久久男人的天堂| 亚洲色欲久久久综合网东京热| 日本天堂网在线| 欧美精选一区二区三区| 欧美欧美欧美欧美| 欧美这里只有精品| 日av在线播放| 国产一区二区久久| 欧美性视频网站| 黄色录像二级片| 欧美网色网址| 91麻豆精品国产无毒不卡在线观看| 妞干网视频在线观看| 国产私拍精品| 成人免费精品视频| 国产精品视频精品| 日韩 欧美 亚洲| 99久久夜色精品国产亚洲96| 亚洲高清不卡av| 怡红院亚洲色图| 这里有精品可以观看| 亚洲精品欧美综合四区| 欧美人与物videos另类| 亚洲国产精品视频在线| 日韩黄色免费电影| 91精品成人久久| √天堂中文官网8在线| 国产精品自拍区| 亚洲成在人线av| 亚洲欧美激情网| 日韩欧美一中文字暮专区| 亚洲男女一区二区三区| 亚洲高清乱码| 玖玖综合伊人| 免费观看久久av| 秋霞午夜av一区二区三区| 粗暴蹂躏中文一区二区三区| 男人的天堂官网 | 久久久久久久成人| 国产一二三av| 精品72久久久久中文字幕| 精品久久五月天| 亚洲av毛片在线观看| 国产精品蜜月aⅴ在线| 色狠狠一区二区| 国模无码视频一区二区三区| 俄罗斯一级**毛片在线播放| 中文字幕亚洲精品在线观看 | 三级视频在线播放| 成人网在线免费视频| 97netav| 国内精品久久久久久久久久| 久久成人综合网| 国产日产欧美a一级在线| 麻豆成人免费视频| 另类天堂av| 奇米成人av国产一区二区三区| 色婷婷在线视频观看| 午夜激情久久| 欧美猛少妇色xxxxx| 成人在线观看免费完整| 午夜片欧美伦| 久久国产精品影视| 免费毛片在线播放免费| 午夜视频精品| 久久久亚洲精选| 日本三级网站在线观看| 在线看片一区| 日韩av电影在线网| 久久久久久无码精品大片| 免费高清视频精品| 成人午夜在线观看| 性色av蜜臀av| 91麻豆免费视频| 日韩欧美亚洲在线| 欧美精品hd| 亚洲黄色免费电影| 97在线国产视频| 婷婷电影在线观看| 91国产精品成人| 亚洲天堂国产视频| 亚洲视频一起| 亚洲欧美日韩精品| 精品国产视频在线观看| 合欧美一区二区三区| 热久久这里只有| 亚洲天堂手机在线| 国产成人精品免费| 欧美一区二区三区四区五区六区| 日本成人在线播放| 亚洲一区中文日韩| 一区二区三区国产免费| 精品一区91| 亚洲精品日韩丝袜精品| 久久久久久久麻豆| 一级成人国产| 亚洲999一在线观看www| 日韩二区三区| 亚洲免费伊人电影| 欧美女人性生活视频| 国产精选久久| 亚洲色图五月天| 三级影片在线看| 久久九九99| av日韩中文字幕| 国产福利电影在线| 午夜激情综合网| 国产又黄又猛的视频| 日本午夜精品| 久久久精品在线观看| xxxx.国产| 国产一区二区成人久久免费影院| 欧美二区在线| 丁香花高清在线观看完整版| 欧美日韩在线免费视频| 欧美熟妇精品黑人巨大一二三区| 久久久国产精品| 国产精品久久久久久久午夜| 国产不卡av在线播放| 国产丝袜在线精品| 精品久久久久久无码中文野结衣| 日韩国产91| 亚洲天天在线日亚洲洲精| 国产真实的和子乱拍在线观看| 久久精品国产一区二区三| 欧美午夜精品久久久久免费视| 欧美1—12sexvideos| 欧美日韩国产成人在线免费| 少妇久久久久久久久久| 日韩亚洲国产精品| 国产91精品入口17c| 欧美另类极品| 欧美喷潮久久久xxxxx| 五月天综合视频| 久久精品女人天堂| 精品在线观看一区二区| 17videosex性欧美| 精品捆绑美女sm三区| 51精品免费网站| 蜜桃视频一区二区三区| 欧美精品在线一区| 中文日产幕无线码一区二区| 精品国产三级电影在线观看| 婷婷色中文字幕| 国产精品自拍毛片| 中文字幕乱码免费| 秋霞影院一区| 欧美成人免费全部| 性生活黄色大片| 亚洲成人免费av| 噜噜噜在线视频| 免费在线亚洲| 日韩欧美在线电影| 国产91亚洲精品久久久| www.国产精品一二区| 91av久久久| 亚洲男人电影天堂| 丰满少妇一区二区三区专区| 欧美黄色aaaa| 精品国产一区二区三区四区vr| rebdb初裸写真在线观看| 亚洲精品成人久久久| 五月婷婷视频在线| 中文成人av在线| 在线观看中文av| 国产精品草草| 久久riav| 懂色aⅴ精品一区二区三区| 最近2019中文免费高清视频观看www99| 老熟妇一区二区三区啪啪| 国产精品美女久久久久久久| 永久免费黄色片| 亚洲国产高清视频| 欧美日韩亚洲一区二区三区在线观看| 欧美成人精品三级网站| 久久亚洲精品一区二区| 国产 日韩 欧美 综合| 日韩欧美国产激情| 国精品人伦一区二区三区蜜桃| 国产精品一区二区在线观看不卡 | 丁香影院在线| 亚洲欧美国产精品| 国产精品人妻一区二区三区| 亚洲国产中文字幕| 一色道久久88加勒比一| 国产精品香蕉一区二区三区| 少妇人妻在线视频| 日韩av自拍| 国产亚洲一区在线播放| 欧美日韩精品一区二区三区视频| 久久最新资源网| 亚洲欧美日韩免费| 欧美丰满嫩嫩电影| 国产情侣在线视频| 国产精品国产三级国产有无不卡| 不许穿内裤随时挨c调教h苏绵| 水野朝阳av一区二区三区| 天天做天天爱天天高潮| 亚洲激情播播| 亚洲永久免费观看| 日本久久免费| 久久久欧美一区二区| 91在线视频| 亚洲精品按摩视频| 国内老熟妇对白hdxxxx| 色婷婷久久久综合中文字幕| 国产精品九九九九九九| 国产日韩影视精品| 亚洲观看黄色网| 国产精品亚洲专一区二区三区| 四虎永久在线精品无码视频| 国产精品vip| 亚洲二区三区四区| 一区二区小说| 国内一区在线| 麻豆一二三区精品蜜桃| 国产精品久久久久久一区二区 | 欧美日韩中国免费专区在线看| 五月综合色婷婷| 国产欧美综合色| av无码av天天av天天爽| 国产91丝袜在线播放| 999久久久精品视频| 日韩av一级片| 男人操女人免费软件| 亚洲欧洲另类| japanese在线播放| 亚洲mv大片欧洲mv大片| 亚洲欧洲一区二区| 精品一区电影| 日本成人黄色| 国产亚洲一区二区三区不卡| 久久超碰亚洲| 免费观看成人www动漫视频| 成人综合av网| jizz性欧美23| 国产超碰91| 91精品国产乱码久久久竹菊| 91免费观看| 日韩欧美中文在线观看| 91久久精品国产91久久| 日韩国产一二三区| 成人免费xxxxx在线观看| www.国产精品| 国产精品一区二区女厕厕| 欧美日韩在线精品一区二区三区激情综合| 日韩69视频在线观看| 超级碰碰久久| 国产精品久久久999| 97精品国产综合久久久动漫日韩 | 欧美a在线观看| 亚洲free性xxxx护士hd| 看亚洲a级一级毛片| 99久热re在线精品996热视频| 亚洲一区二区三区四区电影| 成人免费在线看片| 久久悠悠精品综合网| 狠狠色综合网站久久久久久久| 天堂av一区| 国产伦理一区二区三区| 精品在线观看入口| 亚洲国产激情一区二区三区| 色综合久久一区二区三区| 26uuu成人| 亚洲天堂黄色| 亚洲精品无码久久久久久| 国产精品丝袜xxxxxxx| 日韩黄色片视频| 蜜臀va亚洲va欧美va天堂| 欧美丝袜在线观看| 成人免费va视频| 这里只有久久精品| 亚洲天堂免费看| 国产精品第108页| 欧美自拍偷拍午夜视频| aaa一区二区| 亚洲精品在线不卡| 黄色小网站在线观看| 欧美精品成人在线| 先锋欧美三级| 91影院在线免费观看视频| 一区二区三区国产好| 精品蜜桃一区二区三区| 精品福利久久久| 韩国无码av片在线观看网站| 亚洲综合三区| 91视频福利网| 久久综合狠狠综合久久综合88| www.涩涩爱| 香蕉加勒比综合久久| 特级西西444www大胆免费看| 欧美一区二区三区影视| 午夜在线视频观看| 日韩一区二区欧美| 天堂√8在线中文| 成人免费高清完整版在线观看| 欧美a一欧美| 亚洲在线观看一区| 国产午夜精品一区二区三区欧美| www.夜夜爽| 久久综合久色欧美综合狠狠| 搜索黄色一级片| 色视频成人在线观看免| 成人毛片视频免费看| 精品激情国产视频| 成人性生活视频| 国产伦精品一区二区三区免| 天天久久综合| 国产三级三级三级看三级| 成人动漫中文字幕| 国产成人久久久久| 在线观看日韩毛片| 四虎影院在线域名免费观看| 美女999久久久精品视频 | 999日本视频| 成人直播大秀| 国产美女三级视频| 成人av电影在线| 精品人妻在线播放| 91麻豆精品国产91久久久久| 国产成人天天5g影院在线观看| 性欧美亚洲xxxx乳在线观看| 日韩在线网址| 一区二区三区四区免费观看| 日本在线不卡视频一二三区| 女~淫辱の触手3d动漫| 午夜久久电影网| 隣の若妻さん波多野结衣| 美日韩精品免费视频| 亚洲欧美一级| 综合网五月天| 久久激情综合网| 91av手机在线| 欧美日韩不卡一区二区| 亚洲精品承认| 国产精品久久久久久久久久久不卡 | www.综合网.com| 99九九视频| 国一区二区在线观看| 91插插插影院| 亚洲精选一二三| 国产成人久久精品77777综合| 插插插亚洲综合网| 日日夜夜精品视频| 日本免费成人网| 成人久久视频在线观看| 欧美精品99久久久| 亚洲国产精品电影在线观看| √最新版天堂资源网在线| 国产精品v欧美精品v日韩| 尤物在线精品| 亚洲第九十七页| 色婷婷狠狠综合| 69av亚洲| 7777精品久久久大香线蕉小说| 中文字幕亚洲综合久久五月天色无吗'' | 亚洲精品在线免费播放| 7777kkk亚洲综合欧美网站| 国产在线播放一区二区| 亚洲免费影视| 五月天免费网站| 日韩一级高清毛片| 不卡一本毛片| 奇米影视首页 狠狠色丁香婷婷久久综合 | 色哟哟精品视频| 中文字幕一区二区三区在线观看| 97人妻一区二区精品免费视频| 欧美成人剧情片在线观看| 欧美电影在线观看免费| 国语对白做受xxxxx在线中国| 国产蜜臀av在线一区二区三区| 国产精品久久婷婷| 久久久久久网站| 欧美丝袜激情| 日韩高清一二三区| 狠狠综合久久av一区二区小说| jizz日韩| 风间由美一区二区三区| 久久久久.com| 免费中文字幕在线观看| 日韩av影视综合网| 四虎地址8848精品| 久久国产精品网| 欧美高清一级片在线观看| 国产成人久久精品77777综合| 奇门遁甲1982国语版免费观看高清| 999久久久91| 丰满大乳奶做爰ⅹxx视频| 欧美精品久久天天躁| 123区在线| 黄频视频在线观看| 91蜜桃在线观看| 精品国产av一区二区三区| 日本一区二区三区在线播放| 亚洲一区 二区 三区| 熟女俱乐部一区二区| 欧美电影精品一区二区| 一区在线影院| 欧美色图色综合| 夜夜操天天操亚洲|