前提:
//2個不同的array類
std::arrayarr10;
std::arrayarr5;
如要編寫如上的template class
template class xarr
};xarra10; //產生乙個xarrclass
xarra5; //產生xarra10.insert() //產生乙個實現
a5.insert() //又乙個實現
將產生2個類, 2份insert實現(如果有呼叫的話)
膨脹的template class 的原因是引數
因此讓目標**膨脹減少的方法是,提取乙個template父類:
//乙個模版父類,需要用到的函式放在這兒
template < typename t>
class xbase //型別一致的公用一套**
};template class xarr : public xbase
};xarra10; //產生乙個xarrclass
xarra5; //產生xarra10.insert() //xbase::insert
a5.insert() //與上面的insert 同一實現
雖然無法減少xarr 類的例項化 ,至少減少了insert函式的例項化
簡單驗證一下:
union up;
up.pfunc1= &xarr::test; //xarr 自己的函式將生成2份
cout << up.addr << endl;
up.pfunc2 = &xarr::test;
cout << up.addr << endl;
up.pfunc1= &xarr::insert; //tbase的insert 只有乙份
cout << up.addr << endl;
up.pfunc2 = &xarr::insert;
cout << up.addr << endl;
測地膨脹和膨脹重建 lhMorpRDilate
函式 lhmorprdilate 說明 形態學測地膨脹和膨脹重建運算 引數 src 輸入影象 msk 掩模影象 dst 輸出影象 se 結構元素 iterations測地膨脹的次數,當預設為 1時,為重建運算 原始碼 void lhmorprdilate const iplimage src,con...
openjudge 膨脹的木棍
總時間限制 1000ms 記憶體限制 65536kb 描述 當長度為l的一根細木棍的溫度公升高n度,它會膨脹到新的長度l 1 n c l,其中c是熱膨脹係數。當一根細木棍被嵌在兩堵牆之間被加熱,它將膨脹形成弓形的弧,而這個弓形的弦恰好是未加熱前木棍的原始位置。你的任務是計算木棍中心的偏移距離。輸入三...
1 11 09 膨脹的木棍
描述 當長度為l的一根細木棍的溫度公升高n度,它會膨脹到新的長度l 1 n c l,其中c是熱膨脹係數。當一根細木棍被嵌在兩堵牆之間被加熱,它將膨脹形成弓形的弧,而這個弓形的弦恰好是未加熱前木棍的原始位置。你的任務是計算木棍中心的偏移距離。輸入三個非負實數 木棍初始長度 單位 公釐 溫度變化 單位 ...