c 學習 oop 建構函式

2021-10-21 14:18:54 字數 2393 閱讀 9304

/*

date: 09/03/21 11:34

description: 建構函式

作用:保證每個物件的資料成員具有合適的初始值

建構函式初始化式(初始化列表)

預設實參與建構函式

預設建構函式

隱式類型別轉換

類成員的顯示初始化

*/#include

#include

using

namespace std;

class

person

person

(string nm,

int ag)

:name

(nm)

,age

(ag)

string getname()

const

intgetage()

const};

class

catcat

(string &nm)

:name

(nm)

,age(0

) string getname()

intgetage()

private

: string name;

int age;};

class

dogprivate

: string name;

const

int legs;};

class

sales_item

explicit

sales_item

(const string &book,

int units,

double price)

:isbn

(book)

,units_sold

(units)

,revenue

(price)

explicit

sales_item

(const string &book="")

:isbn

(book)

,units_sold(0

),revenue

(0.0

)explicit

sales_item

(int units,

double price)

explicit

sales_item

(istream &is)

bool

same_isbn

(const sales_item &rhs)

const

friend istream&

operator

>>

(istream&

,sales_item&);

//友元函式,做了乙個流輸入操作符的過載 友元啊,過載啊,永遠的神

private

: string isbn;

unsigned units_sold;

double revenue;};

inline istream&

operator

>>

(istream& in,sales_item& s)

class

data

;class

eata

private

:int ival;

char

*ptr;};

intmain()

;//用9和1.2來進行初始化 c語言的寫法

eata w(9

,"hello");

//c++的寫法

sales_item item1;

sales_item item2

("0-201-82470-1");

// if(item2.same_isbn(string("0-201-82470-1")))//這一行拿著這個字串,利用建構函式建立了乙個新的物件 建構函式前加上explicit後,這一行報錯

// // if(item2.same_isbn(cin)) 建構函式前加上explicit後,這一行報錯

//

sales_item myobj;

if(myobj.

same_isbn

(item2)

)else

sales_item *p =

newsales_item()

;// sales_item item4(cin);

person a

("zhangsan",20

);cout

delete p;

return0;

}

c 學習 oop 析構函式

date 10 03 21 20 12 description 析構函式 建構函式 獲取資源 析構函式 釋放資源 合成的析構函式 三法則 rules of three 寫析構函式必須同時也要寫複製建構函式和賦值運算子 include using namespace std class sales i...

C 學習 建構函式

成員函式的一種 class complex 編譯器自動生成預設建構函式 complex c1 complex p new complex 上面兩個語句類的預設建構函式均被呼叫class a a a double r,double i a a1 缺少函式引數 a a new a 少參 a a 2 ok...

C 學習 建構函式

如果沒有為類顯式地定義乙個建構函式,則c 編譯器會自動生成乙個函式體為空的預設無參的例項建構函式。建構函式主要用於建立類的例項物件。當呼叫建構函式建立乙個物件時,建構函式會為物件分配記憶體空間,並初始化類的成員。建構函式分為例項建構函式和靜態建構函式兩種。例項建構函式用於建立和初始化類的例項。使用n...