C 類與物件之預設成員函式

2021-09-27 09:18:28 字數 1567 閱讀 8953

所有類建立物件時會自動生成六個預設函式。

但有時候預設函式不能滿足需求,可以自己建立對應函式,來代替預設函式。

初始化和清理:建構函式

析構函式

拷貝複製: 賦值過載函式

拷貝建構函式

const物件取位址過載

class date 

date()

{} private:

int _year;

int _mouth;

int _day;

};int main()

完成對類一些資源的清理工作。並不是銷毀,銷毀任務由編譯器完成。

typedef int datatype;

class seqlist

~seqlist()

private:

int * _pdata;

size_t _size;

size_t _capacity;

};

思考:無窮遞迴的原因:傳參會生成臨時變數,生成方式為拷貝構造,進而產生無窮遞迴。

class date 

private:

int _year;

int _mouth;

int _day;

};

淺拷貝:將物件按記憶體儲存按位元組完成拷貝

解決方法:

之後更新。

c++為了增強**可讀性,引入了運算子過載。

data d1+d2; //若+沒有過載則無法通過編譯
運算子過載:具有特殊函式名的函式,有引數,有返回值型別。

函式原型:返回值型別 operator運算子 (引數型別);

過載時需注意:

date& operator=(const date& d) 

date operator+(int days)

else

else

}temp._day = sum;

return temp;

}}

1.const修飾的成員函式

表示其隱性引數this指標所指物件無法修改。

void display( ) const
2.const修飾的物件

const date d1;
3.取位址與const取位址操作符過載

這兩個過載一般不需要顯式給出,編譯器預設生成就夠用了。

class date 

const date* operator&()const

private:

int _year;

int _mouth;

int _day;

};

類和物件(預設成員函式)

建構函式不是開空間建立物件,而是初始化物件,更嚴謹的說是賦初值 特性初始化列表 class date private int year int month int day explicit 析構函式不是完成對物件的銷毀,區域性物件銷毀由編譯器完成,而在物件銷毀時會呼叫析構函式,完成類的一些資源清理工...

C 類預設成員函式與過載

c 中有六大預設成員函式 構建物件 初始化型別轉換 單參才能轉換 沒有返回值,並且不能指定返回值型別 函式名與類名相同 建立物件是由編譯器自動呼叫 在物件生命週期內只會呼叫一次 可以過載 如果沒有顯示定義,編譯器會預設合成乙個預設的建構函式 在有必要的情況下 如類成員變數中有類物件,且該類物件有自己...

C 類和物件及其預設成員函式

類和物件的一些基礎 類是對乙個事物的描述,可以看做成乙個型別 int.char等 他並沒有分配空間。物件是類定義出來的乙個實物。類的成員訪問限定符 public 公有 private 私有 私有只可以類內訪問。公有內外都可以訪問。類外定義 私有的不可以定義 成員函式需要加作用域訪問符 靜態變數需要類...