C++和C#建構函式的不同寫法
阿新 • • 發佈:2018-11-24
C++版:
可以隱式地從基類繼承所有成員,包括方法、欄位、屬性和事件,但私有成員、建構函式和解構函式等除外
1、派生類建構函式的一般形式為:
派生類建構函式名(總引數表):基類建構函式名(引數表)
{
派生類中新增加資料成員初始化語句
}
基類:student(int n, string nam)
一級派生: student1 ( int n, string nam, int a ):student (n,nam)
二級派生:student2 ( int n, string nam, int a, int s ): student1 (n,nam,a)
2、注意!!不要寫成:
student2 ( int n, string nam, int a, int s ): student (n, nam), student1(n, nam, a)//錯誤!!!
C#版:
1.派生類的特點:
1).可以擁有自己的成員
2).可以隱式地從基類繼承所有成員,包括方法、欄位、屬性和事件,但私有成員、建構函式和解構函式等除外。
3).只能從一個類中繼承
2.在C#中,派生類不能繼承其基類的建構函式,但通過使用base關鍵字,派生類建構函式就可以呼叫基類的建構函式。
C#版: public Student(string name, char sex, string school, int score):base(name, sex) 如果是C++版則寫成:public Student(string name, char sex, string school, int score):person(name, sex)
這種區別,主要是C++支援多繼承,而C#不支援多繼承,由於C#繼承的單一性,所以可以用:base關鍵字就可以表示基類名了。
當建立派生類物件時,系統首先執行基類建構函式,然後執行派生類的建構函式,