1. 程式人生 > >C++和C#建構函式的不同寫法

C++和C#建構函式的不同寫法

 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關鍵字就可以表示基類名了。

當建立派生類物件時,系統首先執行基類建構函式,然後執行派生類的建構函式,