oops
1.什麼是複製建構函式
我們知道建構函式是用來初始化我們要建立例項的特殊的方法。通常我們要將乙個例項賦值給另外乙個變數c#只是將引用賦值給了新的變數實質上是對同乙個變數的引用,那麼我們怎樣才可以賦值的同時建立乙個全新的變數而不只是對例項引用的賦值呢?我們可以使用複製建構函式。
我們可以為類創造乙個只用乙個型別為該型別的引數的建構函式,如:
publicstudent(studentstudent)
使用上面的建構函式我們就可以複製乙份新的例項值,而非賦值同一引用的例項了。
classstudent
publicstudent(studentstudent)
publicstringname
set}}
classfinal
staticvoidmain()
studentstudent=newstudent("a");
studentnewstudent=newstudent(student);
student.name="b";
system.console.writeline("thenewstudent'snameis",newstudent.name);
thenewstudent'snameisa.
2.什麼是唯讀常量
就是靜態的唯讀變數,它通常在靜態建構函式中賦值。
classnumbers
staticnumbers()
}//其中n就是乙個唯讀的常量,對於該類的所有例項他只有一種值,而m則根據例項不同而不同。
複製建構函式
今天回看了前面的內容,發現這一章掌握的不夠好,就重看了一遍,順便總結一下 無規律總結 複製建構函式用於複製物件,即可以初始化物件,也可以將複製得到的物件作為實參傳遞給函式,多用於初始化。當我們這樣寫 string null bulk 9 9 9 9 在建立null bulk時編譯器先呼叫string...
複製建構函式
拷貝建構函式的標準寫法如下 class base base const base b 上述寫法見得最多,甚至你認為理所當然。那麼如果我們不寫成引用傳遞呢,而是值傳遞,那麼會怎樣?class base base const base b 編譯出錯 error c2652 base illegal co...
複製建構函式
呼叫複製建構函式的情形 在c 中,下面三種物件需要呼叫複製建構函式 1 乙個物件作為函式引數,以值傳遞的方式傳入函式體 2 乙個物件作為函式返回值,以值傳遞的方式從函式返回 3 乙個物件用於給另外乙個物件進行初始化 常稱為賦值初始化 4 編譯器生成臨時物件 一 乙個物件作為函式引數,以值傳遞的方式傳...