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

學(xué)習(xí)、成長(zhǎng)之路

  C++博客 :: 首頁(yè) :: 聯(lián)系 :: 聚合  :: 管理
  16 Posts :: 0 Stories :: 27 Comments :: 0 Trackbacks

常用鏈接

留言簿

我參與的團(tuán)隊(duì)

搜索

  •  

最新評(píng)論

閱讀排行榜

評(píng)論排行榜

看了幾位大嚇的回復(fù),深深地感覺到了這篇附筆中可能存在錯(cuò)誤,于是把最初遇到此問(wèn)題時(shí)的環(huán)境再模擬了一下,現(xiàn)在可以確認(rèn)這篇附筆中的確存在問(wèn)題,現(xiàn)在就修正一下,并對(duì)各位表示歉意.
6月初的一個(gè)項(xiàng)目中需要寫一個(gè)高性能網(wǎng)絡(luò)服務(wù)端程序,在網(wǎng)上找到了一份很好的代碼(
請(qǐng)參見),在使用過(guò)程中發(fā)現(xiàn)在多個(gè)cpp文件中引入這份代碼的h文件時(shí),會(huì)出現(xiàn)很多重復(fù)定義錯(cuò)誤,當(dāng)時(shí)很頭疼,沒(méi)能很好的解決問(wèn)題.
現(xiàn)總結(jié)一條:在使用類模板技術(shù)時(shí),可在.h中實(shí)現(xiàn),也可在.h和.cpp中分開實(shí)現(xiàn),若用.h實(shí)現(xiàn),不要在文件中加入非類模板代碼,可避免重寫定義錯(cuò)誤..
      2009年7月25日23時(shí)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.實(shí)現(xiàn)部分
// 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.習(xí)慣錯(cuò)誤用法
// main.cpp
#include "Tpl.h"

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

build時(shí)出現(xiàn)link錯(cuò)誤
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)
這組錯(cuò)誤信息和project中不加入Tpl.cpp的錯(cuò)誤信息一樣,即沒(méi)有CTpl<char>的實(shí)現(xiàn)代碼
我們把Tpl.cpp包涵到main.cpp中,問(wèn)題解決
4.正確用法

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

5.總結(jié)
1.在使用以.h,.cpp分離實(shí)現(xiàn)模板類時(shí),不能像使用普通類一樣只簡(jiǎn)單的包涵.h頭文件,應(yīng)該在使用模板類的cpp文件中引入模板類相應(yīng)的cpp文件
2.將模板類的聲明與實(shí)現(xiàn)都放在.h中(在多個(gè)cpp中使用不同模板參數(shù)時(shí)可能會(huì)引起重復(fù)定義的編譯錯(cuò)誤)




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

Feedback

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

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

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

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

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

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

# re: 在類模板的聲明和定義中把.h與.cpp分離 2013-07-18 17:37 wt
@dh
你把模板只是把代碼展開,如果你不包括實(shí)現(xiàn)就就相當(dāng)沒(méi)有實(shí)現(xiàn).
模板是編譯時(shí)展開,不是連接時(shí)展開,也是不運(yùn)行時(shí)的虛函數(shù)  回復(fù)  更多評(píng)論
  


只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問(wèn)   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            欧美有码视频| 理论片一区二区在线| 亚洲狼人综合| 玉米视频成人免费看| 国产精品99一区| 国产精品99免费看| 欧美日韩精品一区二区在线播放| 久久久久久久性| 欧美刺激性大交免费视频| 亚洲一区二区三区视频| 久久欧美中文字幕| 欧美一区二区三区婷婷月色| 亚洲一区二区在线播放| 日韩视频免费大全中文字幕| 99日韩精品| 性欧美精品高清| 99www免费人成精品| 亚洲国产精品传媒在线观看 | 欧美成人精品| 久久偷看各类wc女厕嘘嘘偷窃| 亚洲欧美国产视频| 欧美在线免费看| 蜜桃av一区二区| 欧美日韩另类一区| 欧美午夜精品电影| 国产一区二区三区久久| 91久久精品国产91性色tv| 亚洲开发第一视频在线播放| 一区二区三区四区蜜桃| 最新国产拍偷乱拍精品| 亚洲欧美日本国产专区一区| 麻豆乱码国产一区二区三区| 最近看过的日韩成人| 一区二区av在线| 久久久免费精品视频| 欧美日韩在线精品| 黄色日韩在线| 妖精视频成人观看www| 欧美一级艳片视频免费观看| 你懂的亚洲视频| 欧美一区二区三区成人| 欧美精品国产一区| 伊人成人开心激情综合网| 亚洲理伦在线| 蜜桃av噜噜一区二区三区| 亚洲一区二区三区涩| 久久亚洲精品一区二区| 欧美日韩免费在线视频| 国产九九精品视频| 亚洲最新色图| 亚洲亚洲精品三区日韩精品在线视频 | 在线高清一区| 欧美一区二区视频97| 亚洲国产精品va在线观看黑人 | 精品动漫一区| 欧美国产日韩一区| 亚洲精品视频在线观看免费| 欧美91视频| 欧美大学生性色视频| 欧美高清自拍一区| 久久黄色小说| 亚洲欧美在线一区二区| 欧美日韩一卡| 国产精品五月天| 久久在线播放| 久久免费视频在线观看| 国产情人综合久久777777| 欧美成人午夜激情| 亚洲精品男同| 一本久久a久久精品亚洲| 久久男女视频| 亚洲女爱视频在线| 国产精品久久久一区二区| 免费亚洲一区二区| 亚洲七七久久综合桃花剧情介绍| 欧美日韩一本到| 欧美顶级少妇做爰| 欧美一级欧美一级在线播放| 午夜视频在线观看一区二区三区| 欧美成人高清| 国产精品麻豆成人av电影艾秋| 欧美四级电影网站| 一本色道久久88综合亚洲精品ⅰ| 亚洲第一福利在线观看| 久久久精品动漫| 亚洲欧洲一区| 国内精品国产成人| 亚洲成在线观看| 亚洲成人在线免费| 亚洲性感激情| 国产精品久久久久免费a∨| 欧美肥婆在线| 国产自产在线视频一区| 亚洲一区在线免费| 久久久噜噜噜久久人人看| 伊人久久亚洲热| 久久久一二三| 亚洲精品一区二区三区在线观看| 男女激情视频一区| 美腿丝袜亚洲色图| 亚洲美女黄色片| 亚洲欧美三级在线| 亚洲黄色在线视频| 一区二区91| 欧美在线播放视频| 国产麻豆日韩| 香蕉久久一区二区不卡无毒影院| 亚洲深夜福利| 欧美日韩mp4| 亚洲无线视频| 欧美成人蜜桃| 亚洲美女在线看| 国产免费观看久久黄| 久久久www免费人成黑人精品 | 亚洲欧洲免费视频| 国产精品网站一区| 开元免费观看欧美电视剧网站| 一区电影在线观看| 牛牛影视久久网| 欧美一区二区三区四区在线| 亚洲电影在线| 国产精品免费视频xxxx| 欧美与黑人午夜性猛交久久久| a4yy欧美一区二区三区| 欧美aⅴ99久久黑人专区| 欧美专区18| 亚洲欧美日韩第一区| 一区二区三区欧美亚洲| 精品成人乱色一区二区| 国产欧美一二三区| 欧美精品国产一区| 久久久999| 校园春色综合网| 亚洲欧美在线另类| 亚洲一区二区三区四区五区午夜| 夜夜嗨av一区二区三区网页| 欧美肥婆在线| 一本一本久久| 性欧美精品高清| 久久久久久久久岛国免费| 久久精品国产精品亚洲精品| 裸体女人亚洲精品一区| 美日韩精品免费| 蜜臀av性久久久久蜜臀aⅴ| 久久精品理论片| 久久夜色精品国产欧美乱极品| 久久久久久久999精品视频| 牛牛国产精品| 欧美偷拍一区二区| 国产亚洲欧美一区二区| 亚洲片国产一区一级在线观看| 亚洲日本成人女熟在线观看| 亚洲综合日韩| 欧美99在线视频观看| 亚洲欧洲日产国产综合网| 亚洲精品资源| 一区二区三区 在线观看视频| 久久九九99视频| 欧美精品1区| 精久久久久久| 欧美一区二视频| 亚洲精品久久久一区二区三区| 亚洲主播在线| 欧美丝袜第一区| 亚洲精品系列| 欧美黄在线观看| 在线视频欧美日韩| 欧美在线电影| 久久国产主播| 国产婷婷色一区二区三区四区 | 欧美激情精品久久久六区热门 | 久久精品国产综合| 亚洲在线观看| 国产精品视频一二三| 亚洲免费小视频| 亚洲午夜视频| 欧美丝袜一区二区三区| 一区二区欧美激情| 亚洲国产裸拍裸体视频在线观看乱了中文 | 日韩午夜免费| 欧美全黄视频| 亚洲一区二区三区在线播放| 亚洲三级影片| 欧美日本在线播放| 亚洲裸体在线观看| 亚洲国产日韩欧美| 欧美精品v日韩精品v韩国精品v| 国产日韩欧美综合在线| 久久久久综合| 免费永久网站黄欧美| 亚洲精品影视| 美女露胸一区二区三区| 久久久人成影片一区二区三区| 国产美女精品视频| 亚洲天堂av图片| 国产精品mm| 久久久久久9999| 久热这里只精品99re8久| 亚洲伦理在线| 欧美日韩不卡合集视频|