模板源碼隱藏技術

https://stackoverflow.com/questions/30131808/is-it-possible-to-hide-implementation-of-template-class

https://blog.csdn.net/qingcaichongchong/article/details/50914465?utm_source=blogxgwz9

https://stackoverflow.com/questions/5869479/how-to-hide-an-implementation-helper-template

1. 混淆實現(xiàn)

不能隱藏,必須在頭文件中完全定義類模板弓颈。您只能通過使用多層頭文件并使用輔助類名和輔助函數(shù)名來混淆實現(xiàn),輔助函數(shù)名是最高級別用戶可見類的混淆。

2. 模板特化

如果僅將其用于某些特定類型庄萎,則可以隱藏它俺夕。在這種情況下契耿,您可以執(zhí)行顯式實例化,導出模板并在.cpp中實現(xiàn)它拣度。嘗試將其與任何其他類型一起使用將不會鏈接。

//-----------------------------------------------------------------------------------------------
// Calculate.h
// 計算類
//-----------------------------------------------------------------------------------------------
?
?
#ifndef __CALCULATE_H__
#define __CALCULATE_H__
?
?
template <typename T>
class Calcuate
{
public:
 Calcuate<T>();
 virtual ~Calcuate<T>();
 T add(T lhs, T rhs);
};
?
?
// 導出宏
#ifdef TEMPLATE_EXPORT_CLASS_EXPORTS
#define TEMPLATE_EXPORT __declspec(dllexport)
#else
#define TEMPLATE_EXPORT __declspec(dllimport)
#endif
?
?
// 模板特化
#define INSTANTIATE(T) template class TEMPLATE_EXPORT Calcuate<T>;
INSTANTIATE(int)
INSTANTIATE(float)
INSTANTIATE(double)
?
?
#endif
//-----------------------------------------------------------------------------------------------
// Calculate.cpp
// 計算類
//-----------------------------------------------------------------------------------------------
?
?
#include "../Include/Calculate.h"
?
?
template<class T>
Calcuate<T>::Calcuate()
{
?
?
}
?
template<class T>
Calcuate<T>::~Calcuate<T>()
{
?
?
}
?
template<class T>
T Calcuate<T>::add(T lhs, T rhs)
{
 return lhs + rhs;
}
// TemplateSourceHide.cpp : 定義控制臺應用程序的入口點螃壤。
//
?
#include "stdafx.h"
?
?
#include <iostream>
?
#include "Include/Calculate.h"
?
?
int main()
{
 Calcuate<int> ins;
 auto result1 = ins.add(3, 5);
 std::cout << "Result = " << result1 << std::endl;
?
 getchar();
}
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末抗果,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子奸晴,更是在濱河造成了極大的恐慌冤馏,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,865評論 6 518
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件寄啼,死亡現(xiàn)場離奇詭異逮光,居然都是意外死亡,警方通過查閱死者的電腦和手機墩划,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,296評論 3 399
  • 文/潘曉璐 我一進店門涕刚,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人乙帮,你說我怎么就攤上這事杜漠。” “怎么了察净?”我有些...
    開封第一講書人閱讀 169,631評論 0 364
  • 文/不壞的土叔 我叫張陵驾茴,是天一觀的道長。 經(jīng)常有香客問我氢卡,道長沟涨,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 60,199評論 1 300
  • 正文 為了忘掉前任异吻,我火速辦了婚禮裹赴,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘诀浪。我一直安慰自己棋返,他們只是感情好,可當我...
    茶點故事閱讀 69,196評論 6 398
  • 文/花漫 我一把揭開白布雷猪。 她就那樣靜靜地躺著睛竣,像睡著了一般。 火紅的嫁衣襯著肌膚如雪求摇。 梳的紋絲不亂的頭發(fā)上射沟,一...
    開封第一講書人閱讀 52,793評論 1 314
  • 那天殊者,我揣著相機與錄音,去河邊找鬼验夯。 笑死猖吴,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的挥转。 我是一名探鬼主播海蔽,決...
    沈念sama閱讀 41,221評論 3 423
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼绑谣!你這毒婦竟也來了党窜?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 40,174評論 0 277
  • 序言:老撾萬榮一對情侶失蹤借宵,失蹤者是張志新(化名)和其女友劉穎幌衣,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體壤玫,經(jīng)...
    沈念sama閱讀 46,699評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡泼掠,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,770評論 3 343
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了垦细。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片择镇。...
    茶點故事閱讀 40,918評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖括改,靈堂內(nèi)的尸體忽然破棺而出腻豌,到底是詐尸還是另有隱情,我是刑警寧澤嘱能,帶...
    沈念sama閱讀 36,573評論 5 351
  • 正文 年R本政府宣布吝梅,位于F島的核電站,受9級特大地震影響惹骂,放射性物質(zhì)發(fā)生泄漏苏携。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 42,255評論 3 336
  • 文/蒙蒙 一对粪、第九天 我趴在偏房一處隱蔽的房頂上張望右冻。 院中可真熱鬧,春花似錦著拭、人聲如沸纱扭。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,749評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽乳蛾。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間肃叶,已是汗流浹背蹂随。 一陣腳步聲響...
    開封第一講書人閱讀 33,862評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留因惭,地道東北人岳锁。 一個月前我還...
    沈念sama閱讀 49,364評論 3 379
  • 正文 我出身青樓,卻偏偏與公主長得像筛欢,于是被迫代替她去往敵國和親浸锨。 傳聞我的和親對象是個殘疾皇子唇聘,可洞房花燭夜當晚...
    茶點故事閱讀 45,926評論 2 361

推薦閱讀更多精彩內(nèi)容

  • core package 概要:Core是所有其他包的基礎包.它提供了大部分功能包括metadata版姑,templa...
    LOVE小狼閱讀 2,598評論 0 3
  • Swift1> Swift和OC的區(qū)別1.1> Swift沒有地址/指針的概念1.2> 泛型1.3> 類型嚴謹 對...
    cosWriter閱讀 11,113評論 1 32
  • 事情是這樣發(fā)生的。19:00的時候迟郎,天下了耗時一分鐘的一場大雨剥险。本來打算好要去買藥的我,毅然換了運動裝宪肖,帶...
    jokershen閱讀 218評論 0 0
  • 見: 螞蟻簡單的行為系統(tǒng)自然有很大局限表制,因為它的神經(jīng)系統(tǒng)的功能有限。例如控乾,有一種螞蟻么介,當它在巢穴里嗅到螞蟻尸體散發(fā)...
    huifang963閱讀 156評論 0 0
  • 阿杰做公眾號快很長的時間,接收到了廣大粉絲發(fā)來的各種秋波蜕衡。最近他們向阿杰抱怨自己現(xiàn)在的生活已經(jīng)不再像從前一樣:在戀...
    大餅不是博士閱讀 287評論 0 1