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

學習、成長之路

  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 閱讀(9210) 評論(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>
            亚洲精品久久久蜜桃| 国产精品劲爆视频| 欧美色区777第一页| 一本色道久久综合| 91久久综合| 国产精品mm| 久久国产99| 久久久久国产成人精品亚洲午夜| 依依成人综合视频| 欧美二区在线看| 国产视频久久| 久久精品国产精品亚洲| 国产视频欧美视频| 免费在线欧美视频| 欧美日韩国产精品专区| 亚洲一区二区三区视频播放| 亚洲欧美日韩一区在线| 国语自产在线不卡| 91久久精品一区二区别| 国产精品色婷婷久久58| 久久亚洲视频| 欧美另类高清视频在线| 午夜精品短视频| 快射av在线播放一区| 中文一区在线| 欧美一区中文字幕| 亚洲美女视频在线观看| 国产精品99久久久久久久女警| 国内免费精品永久在线视频| 亚洲区中文字幕| 国产一区二区日韩精品| 亚洲国产高清在线| 国产农村妇女精品| 最新成人av网站| 国户精品久久久久久久久久久不卡 | 一区二区三区免费看| 国际精品欧美精品| 亚洲午夜电影| 亚洲精品一区二区三区99| 亚洲免费一在线| 一本一本久久a久久精品综合妖精 一本一本久久a久久精品综合麻豆 | 国产日韩在线亚洲字幕中文| 欧美国产精品v| 国产欧美在线看| 亚洲精品乱码久久久久久久久| 国产欧美一区二区视频| 亚洲久色影视| 亚洲黄色影院| 在线精品高清中文字幕| 欧美一区二区三区四区在线观看地址 | 一本不卡影院| 亚洲激情国产精品| 久久福利一区| 久久激情婷婷| 国产精品综合不卡av| 亚洲欧洲日产国产综合网| 精品999网站| 香蕉久久夜色精品国产| 午夜精品久久久久久久男人的天堂| 免费看亚洲片| 亚洲成人在线视频播放 | 久久一二三区| 国产片一区二区| 亚洲一区二区日本| 午夜精品久久久99热福利| 欧美连裤袜在线视频| 亚洲精品国产品国语在线app| 亚洲国产小视频| 女人色偷偷aa久久天堂| 欧美国产日韩亚洲一区| 亚洲国产欧美一区二区三区同亚洲| 久久久久久午夜| 欧美成年人网| 亚洲精品人人| 欧美日韩国产综合在线| 一区二区三区免费在线观看| 亚洲影院色无极综合| 国产精品美女久久久久久免费 | 亚洲日本欧美在线| 一区二区三区精密机械公司| 欧美日韩亚洲一区三区| 亚洲视频一区在线| 久久精品夜色噜噜亚洲a∨| 国内成+人亚洲+欧美+综合在线| 久久精品99国产精品| 欧美成人一区二区三区在线观看| 亚洲高清电影| 欧美激情免费观看| 亚洲一级黄色片| 快she精品国产999| 日韩一级在线| 国产欧美日韩视频一区二区三区 | 午夜精品久久久久久久久久久久久 | 国产精品大片免费观看| 性刺激综合网| 亚洲福利av| 亚洲欧美日韩区| 黄色精品网站| 欧美日韩999| 欧美一区二区视频在线观看2020| 欧美福利小视频| 亚洲免费一区二区| 亚洲成色777777在线观看影院| 欧美精品乱码久久久久久按摩| 亚洲欧美国产日韩天堂区| 美女网站在线免费欧美精品| 中国成人亚色综合网站| 一区二区三区亚洲| 欧美视频精品在线| 老牛影视一区二区三区| 亚洲一级黄色av| 亚洲黄一区二区| 久久久成人精品| 亚洲一级黄色av| 在线观看日韩www视频免费 | 久久爱www.| 中国女人久久久| 亚洲国产精品热久久| 久久精品国产91精品亚洲| 亚洲最黄网站| 亚洲国产欧美一区二区三区丁香婷| 国产精品视频专区| 欧美日韩久久不卡| 狠狠色狠狠色综合日日91app| 欧美有码在线视频| 久久久精品国产99久久精品芒果| 日韩视频中文| 韩国v欧美v日本v亚洲v| 国产精品一区一区| 国产精品一二三四| 久久久久久久国产| 欧美影院视频| 午夜精品av| 亚洲自拍三区| 99精品国产热久久91蜜凸| 亚洲电影网站| 欧美成人久久| 欧美成在线观看| 麻豆精品精品国产自在97香蕉| 欧美一区二区视频在线观看2020| 亚洲天堂网在线观看| 一区二区三区波多野结衣在线观看| 亚洲国产清纯| 激情久久久久久| 国产综合视频在线观看| 黑人巨大精品欧美一区二区| 国产乱人伦精品一区二区| 国产精品视频成人| 国产日韩三区| 国产在线播精品第三| 激情91久久| 亚洲国产精品第一区二区三区| 精品不卡一区二区三区| 一区二区三区在线高清| 亚洲国产精品一区二区尤物区 | 欧美精品v日韩精品v国产精品| 欧美插天视频在线播放| 欧美波霸影院| 欧美日韩免费在线| 国产精品乱码久久久久久| 国产日韩一区欧美| 在线精品视频在线观看高清| 亚洲高清一二三区| 一区二区免费在线观看| 亚洲永久免费精品| 久久精品夜色噜噜亚洲a∨| 男女精品网站| 亚洲理伦电影| 午夜精品一区二区三区电影天堂| 午夜欧美理论片| 另类天堂av| 欧美午夜电影一区| 国产主播精品| 日韩亚洲国产欧美| 欧美在线欧美在线| 欧美激情麻豆| 亚洲自拍都市欧美小说| 美日韩精品免费| 国产精品美女久久久久久2018| 在线成人欧美| 亚洲一区二区久久| 免费中文字幕日韩欧美| 夜夜爽www精品| 久久中文欧美| 国产精品一区二区视频| 亚洲激情视频网| 午夜视频在线观看一区| 亚洲缚视频在线观看| 亚洲一区成人| 欧美大片va欧美在线播放| 国产视频欧美视频| 亚洲深夜影院| 欧美韩日一区| 新67194成人永久网站| 欧美日韩视频在线第一区| 在线国产欧美| 久久久久久久久久久久久女国产乱| 日韩一级不卡| 欧美电影免费| 亚洲国产片色|