stock food =
stock
("world cabbage"
,250
,1.25
);
stock food
("world cabbage"
,250
,1.25
);
stock *p=
newstock
("world cabbage"
,250
,1.25);
物件的位址賦給指標p,物件無名稱。
類名稱(
const 類名稱 &物件)
舊物件初始化新物件的時候,才會呼叫拷貝建構函式,如下面所示:
stringbad * p =
newstringbad
(motto)
;/ calls stringbad
(const stringbad &
)使用motto初始化乙個匿名物件,並且將新物件的位址賦給p指標
下面不會呼叫拷貝建構函式
按引數型別:
1.有參構造
2.無參構造
stock
(const string & co =
"error"
,int n =0,
double pr =
0.0);或
stock::
stock()
// default constructor
stock first
("concrete conglomerate");
/ calls constructor呼叫接收引數的建構函式
stock second()
;/declares a function宣告乙個返回值型別為stock的函式
stock third;
/ calls default constructor隱式呼叫預設建構函式
stock stock2 = stock (
"boffo objects",2
,2.0);
/ 指定物件的初始化,可能會建立臨時變數。
stock1 =
stock
("nifty foods",10
,50.0);
/ 賦值語句,在賦值語句中使用建構函式會導致在賦值前建立乙個臨時變數。
按型別分類:
1.普通建構函式
2.有參建構函式
explicit關鍵字
malloc,free
C 建構函式和析構函式
1.建構函式是類的一種特殊方法,每次建立類的例項都會呼叫它。在建立乙個類的例項時,建構函式就像乙個方法一樣被呼叫,但不返回值。語法格式 訪問修飾符 類名 特性 1 其名字必須與類名相同,例如 public class myclass 2 不能被直接呼叫,必須通過new運算子來 呼叫。publiccl...
C 建構函式和析構函式
建構函式 class rectangel rectangel int l,int w 這是帶引數的建構函式,建構函式都是沒有返回值,並且和該類同名 int area 這是另一種形式的內聯函式,把宣告和定義寫在一起的也是內聯函式 private int length int width 析構函式 cl...
c 建構函式和析構函式
1.c 的建構函式有預設建構函式,一般的建構函式,賦值建構函式,拷貝建構函式 複製建構函式 強制型別轉化建構函式。2.如果沒有定義建構函式和析構函式,則c 編譯器會按照 位拷貝 的方式提供預設的建構函式 不初始化 預設的賦值建構函式 淺賦值 預設的拷貝建構函式 淺拷貝 預設的析構函式。位拷貝要小心指...