C++編程語言中有很多比較重要的函數在我們的實際程序開發中體現著非常重要的作用。我們在這裡就為大家總結了三款比較常用的C++基本函數,大家可以從中對C++編程語言中的函數有一個全面的了解。
談到析構函數時,幾乎所有的我身邊的參考書無一例外地只用了一點點篇幅,但Big C++名副其實地難得啰裡巴嗦地命中了要害一次
質量提示18.4:如果有析構函數,那麼也應有拷貝構造函數及賦值運算符三個基本函數)
對於管理堆內存的類,必須實現這三個函數
舉例:
- //String 類非標准string類,為個人創造的類,其中沒有定義拷貝構造函數
- String a = "GG"; //分配堆
- 局部作用域{
- String b =a; //錯誤,按成員復制會產生共享堆
- }//局部作用域結束,調用析構函數b.~String(),堆空間被刪除
- //此時a的堆空間已被b的析構函數刪除
一般常見的構造模式:
C++基本函數之拷貝構造函數
- X::X (const X& right){
- copy(right);
- }
C++基本函數之賦值運算符重載
- X& X::operator=(const X& right){
- if (this !=&right){
- free();
- copy(right);
- }
- return *this;
- }
C++基本函數之析構函數
- X::~X(){
- free()
- }