模板:
【優點】
模板復用了**,節省資源,更快的迭代開發,c++的標準模板庫(stl)因此而產生【缺陷】增強了**的靈活
1.模板會導致**膨脹問題,也會導致編譯時間變長通用的拷貝函式2.出現模板編譯錯誤時,錯誤資訊非常凌亂,不易定位錯誤
這裡結合兩者優點將(內建型別使用memcpy ) (自定義型別使用賦值)
1.列舉型別判斷
2.型別萃取(這裡只列舉部分內建型別)
//寫乙個通用的拷貝函式
class string
string(const string& s)
:_str(new char[strlen(s._str) + 1])
string& operator=(const string& s)
return *this;
} ~string() }
private:
char* _str;
};///使用truetype代表內建型別
struct truetype
};///使用falsetype代表內建型別
struct falsetype
};templatestruct typetraits
;template<>
struct typetraits;
template<>
struct typetraits;
template<>
struct typetraits;
template<>
struct typetraits;
template<>
struct typetraits;
template<>
struct typetraits;
templatevoid copy(t* dst, t* src, size_t size)
else
}int main()
; int arr1[10];
copy(arr1, arr, 10);
string s1 = ;
string s2[3];
copy(s2, s1,3);
return 0;
}
深拷貝通用方法
遞迴實現深拷貝 可拷貝物件,陣列,regexp物件,基本資料型別。doctype html en utf 8 x ua compatible content ie edge viewport content width device width,initial scale 1.0 document ...
寫乙個高效且通用的拷貝函式
通用的拷貝函式呢,對於大部分內建型別來說,都是可以直接拷貝的,我們呼叫memcpy 就可以直接完成,並且效率也很高。但是出現類似於string類時,直接用mempy 就會出現淺拷貝的問題。這時,我們就需要對各種型別進行選擇,選擇合適的拷貝方式。思路 首先,我們會考慮下多傳乙個引數進行判斷一下,這樣很...
拷貝建構函式,預設拷貝建構函式
拷貝建構函式,預設拷貝建構函式 1.c 的預設拷貝建構函式,從深度拷貝和淺拷貝說起 c 類的預設拷貝建構函式的弊端 c 類的中有兩個特殊的建構函式,1 無參建構函式,2 拷貝建構函式。它們的特殊之處在於 1 當類中沒有定義任何建構函式時,編譯器會預設提供乙個無參建構函式且其函式體為空 2 當類中沒有...