青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

學習、成長之路

  C++博客 :: 首頁 :: 聯系 :: 聚合  :: 管理
  16 Posts :: 0 Stories :: 27 Comments :: 0 Trackbacks

常用鏈接

留言簿

我參與的團隊

搜索

  •  

最新評論

閱讀排行榜

評論排行榜

看了幾位大嚇的回復,深深地感覺到了這篇附筆中可能存在錯誤,于是把最初遇到此問題時的環境再模擬了一下,現在可以確認這篇附筆中的確存在問題,現在就修正一下,并對各位表示歉意.
6月初的一個項目中需要寫一個高性能網絡服務端程序,在網上找到了一份很好的代碼(
請參見),在使用過程中發現在多個cpp文件中引入這份代碼的h文件時,會出現很多重復定義錯誤,當時很頭疼,沒能很好的解決問題.
現總結一條:在使用類模板技術時,可在.h中實現,也可在.h和.cpp中分開實現,若用.h實現,不要在文件中加入非類模板代碼,可避免重寫定義錯誤..
      2009年7月25日23時58分58秒
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// 原文如下:Posted on 2009-07-25 15:10 sToa
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

1.聲明部分
// Tpl.h
#pragma once

template<class T>
class CTpl  
{
public:
    CTpl();
    virtual ~CTpl();

    void Test(T t);

};

2.實現部分
// Tpl.cpp
#include "Tpl.h"

template<class T>
CTpl<T>::CTpl()
{

}

template<class T>
CTpl<T>::~CTpl()
{

}

template<class T>
void CTpl<T>::Test(T t)
{

}
3.習慣錯誤用法
// main.cpp
#include "Tpl.h"

int main()
{
    CTpl<char> ts;
    ts.Test(3);
    return 0;
}

build時出現link錯誤
main.obj : error LNK2001: unresolved external symbol "public: virtual __thiscall CTpl<char>::~CTpl<char>(void)" (??1?$CTpl@D@@UAE@XZ)
main.obj : error LNK2001: unresolved external symbol "public: void __thiscall CTpl<char>::Test(char)" (?Test@?$CTpl@D@@QAEXD@Z)
main.obj : error LNK2001: unresolved external symbol "public: __thiscall CTpl<char>::CTpl<char>(void)" (??0?$CTpl@D@@QAE@XZ)
這組錯誤信息和project中不加入Tpl.cpp的錯誤信息一樣,即沒有CTpl<char>的實現代碼
我們把Tpl.cpp包涵到main.cpp中,問題解決
4.正確用法

// main.cpp
#include "tpl.cpp"
int main()
{
    CTpl<char> ts;
    ts.Test(3);
    return 0;
}

5.總結
1.在使用以.h,.cpp分離實現模板類時,不能像使用普通類一樣只簡單的包涵.h頭文件,應該在使用模板類的cpp文件中引入模板類相應的cpp文件
2.將模板類的聲明與實現都放在.h中(在多個cpp中使用不同模板參數時可能會引起重復定義的編譯錯誤)




posted on 2009-07-25 15:10 sToa 閱讀(9207) 評論(7)  編輯 收藏 引用 所屬分類: C++

Feedback

# re: 在類模板的聲明和定義中把.h與.cpp分離 2009-07-25 15:47 99書城
很好哦!  回復  更多評論
  

# re: 在類模板的聲明和定義中把.h與.cpp分離 2009-07-25 19:37 cyberamoeba
Hold a candle to the sun!  回復  更多評論
  

# re: 在類模板的聲明和定義中把.h與.cpp分離[未登錄] 2009-07-25 20:11 hdqqq
這個和include .h 文件有啥區別,后綴不同而已。  回復  更多評論
  

# re: 在類模板的聲明和定義中把.h與.cpp分離 2009-07-25 21:13 legendlee
這仍然沒有改變模板的本質:你想讓人用,就要提供給人家源碼。  回復  更多評論
  

# re: 在類模板的聲明和定義中把.h與.cpp分離 2009-07-27 02:15 阿福
我的習慣是:模板類的定義放在.h文件中,模板類的實現放在.hpp文件中。
然后.h文件的末尾再include .hpp文件。
在使用的時候,直接#include .h文件就行了。
如果擔心編譯效率,可以使用預編譯頭文件技術。  回復  更多評論
  

# re: 在類模板的聲明和定義中把.h與.cpp分離 2012-03-22 20:25 dh
很好,解決了我的編譯錯誤問題。原因是什么呢?模板類和普通類有什么區別?  回復  更多評論
  

# re: 在類模板的聲明和定義中把.h與.cpp分離 2013-07-18 17:37 wt
@dh
你把模板只是把代碼展開,如果你不包括實現就就相當沒有實現.
模板是編譯時展開,不是連接時展開,也是不運行時的虛函數  回復  更多評論
  

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            在线观看中文字幕不卡| 亚洲午夜久久久久久久久电影网| 亚洲美女视频网| 国产一区自拍视频| 国产一区日韩二区欧美三区| 国产区亚洲区欧美区| 国产欧美在线看| 黄色日韩网站视频| 国产欧美欧洲在线观看| 国内欧美视频一区二区| 国产一区二区精品丝袜| 精品二区视频| 亚洲理论电影网| 亚洲私人影院| 久久久久久久999| 欧美18av| 在线一区亚洲| 久久久精品五月天| 欧美视频国产精品| 国产综合香蕉五月婷在线| 亚洲日本在线观看| 久久福利精品| 亚洲黄色有码视频| 亚洲一区二区三区久久 | 欧美国产日韩在线| 91久久精品一区二区别| 亚洲香蕉网站| 久久精品日韩| 欧美日韩国产另类不卡| 国产情人节一区| 亚洲激情一区二区三区| 欧美一区二区三区四区高清| 亚洲激情二区| 欧美亚洲在线观看| 欧美三级网址| 亚洲第一精品福利| 亚洲一区久久久| 久久久久一本一区二区青青蜜月| 亚洲美女精品久久| 久久人体大胆视频| 国产精品毛片a∨一区二区三区| 国产亚洲综合精品| 亚洲一区二区三区乱码aⅴ| 女主播福利一区| 亚洲天堂网站在线观看视频| 毛片av中文字幕一区二区| 国产精品一二一区| 日韩亚洲视频| 亚洲第一精品夜夜躁人人躁| 亚洲欧美日韩在线| 欧美日韩一区在线视频| 亚洲三级免费电影| 女主播福利一区| 久久久精品国产一区二区三区| 国产精品捆绑调教| 欧美日韩国产美| 在线观看91精品国产麻豆| 欧美一级免费视频| 一区二区三区精密机械公司 | 久久精品国产视频| 亚洲一二三区在线观看| 欧美欧美天天天天操| 亚洲欧美日韩精品久久| 亚洲影院在线| 亚洲精品乱码久久久久| 免播放器亚洲| 亚洲激情视频| 欧美国产视频在线观看| 久久人人爽国产| 韩国av一区二区三区四区| 久久av一区二区| 欧美影院久久久| 激情久久综艺| 噜噜爱69成人精品| 模特精品在线| 亚洲美女性视频| 一区二区精品国产| 国产酒店精品激情| 久久久久久97三级| 久久嫩草精品久久久精品| 一区福利视频| 91久久国产精品91久久性色| 欧美精品尤物在线| 午夜视频久久久久久| 亚洲欧美www| 在线成人免费观看| 91久久国产综合久久| 亚洲在线成人| 国产一区二区精品久久| 美女网站在线免费欧美精品| 久久综合给合久久狠狠狠97色69| 亚洲国产天堂久久综合网| 亚洲日本中文字幕免费在线不卡| 欧美日韩在线精品| 久久国产黑丝| 久久夜色精品一区| 亚洲视频网站在线观看| 午夜久久久久久| 亚洲国产精品一区二区第四页av | 亚洲男同1069视频| 韩国在线视频一区| 亚洲精品欧美激情| 国产乱码精品一区二区三区忘忧草 | 亚洲麻豆视频| 在线视频你懂得一区| 国产一区二区三区高清在线观看 | 蜜桃精品一区二区三区 | 亚洲大胆美女视频| 亚洲毛片在线看| 国产日韩综合| 亚洲免费福利视频| 国产一区二区欧美日韩| 在线视频一区二区| 亚洲第一色在线| 亚洲在线成人精品| 亚洲最新在线视频| 亚洲精品国产精品乱码不99| 久久久99精品免费观看不卡| 老鸭窝91久久精品色噜噜导演| 亚洲性视频h| 老司机67194精品线观看| 亚洲新中文字幕| 久久亚洲风情| 久久精品视频在线| 欧美视频一区二区三区四区| 欧美日韩在线播放一区| 久久久www| 久久婷婷久久| 久久经典综合| 日韩午夜精品| 怡红院精品视频在线观看极品| 亚洲一区久久久| 亚洲一区二区三区视频播放| 欧美国产三区| 亚洲国产精品电影| **网站欧美大片在线观看| 午夜视频在线观看一区二区三区 | 欧美亚洲免费| 先锋影音国产一区| 欧美视频在线播放| 99re66热这里只有精品3直播| 亚洲欧洲三级| 你懂的网址国产 欧美| 玖玖玖国产精品| 伊人精品成人久久综合软件| 午夜久久tv| 美女精品在线| 亚洲国产精品毛片| 亚洲免费视频成人| 欧美一区二区三区四区在线| 国产精品乱人伦一区二区| 中文亚洲字幕| 午夜精品短视频| 国产九区一区在线| 羞羞视频在线观看欧美| 久久精品99国产精品| 国产一区二区三区在线播放免费观看| 亚洲免费在线视频| 久久国产精品99国产精| 国产欧美日韩综合精品二区| 香蕉精品999视频一区二区| 久久久国产精品亚洲一区| 狠狠综合久久| 欧美成人亚洲成人| 一片黄亚洲嫩模| 国产精品久久久久久久久久妞妞 | 久久天堂国产精品| 亚洲二区在线| 亚洲午夜高清视频| 国产精品一区二区视频| 久久久久久久久久久久久久一区| 欧美成年人在线观看| 亚洲精品视频一区二区三区| 欧美精品在线观看91| 亚洲天堂偷拍| 欧美国产日韩视频| 性欧美videos另类喷潮| 国产精品系列在线播放| 久久精品99国产精品酒店日本| 久久久噜噜噜久久中文字免| 亚洲精品国产精品国自产在线| 亚洲在线日韩| 国内成+人亚洲+欧美+综合在线| 久久亚洲图片| 亚洲天堂男人| 欧美成人精品高清在线播放| 亚洲综合首页| 在线观看欧美黄色| 国产精品不卡在线| 久久综合电影| 欧美一级大片在线免费观看| 亚洲激情视频网站| 久久久亚洲欧洲日产国码αv| 99热在线精品观看| 国内自拍一区| 国产精品视频导航| 欧美精品三级日韩久久| 久久精品国产第一区二区三区| 日韩小视频在线观看专区| 免费观看日韩av|