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关键字就可以表示基类名了。

当创建派生类对象时,系统首先执行基类构造函数,然后执行派生类的构造函数,

猜你喜欢

转载自blog.csdn.net/qq_39736982/article/details/84284440