派生类的构造方法在执行自己的任务之前将会调用基类的构造方法。C#也是这样吗?

派生类的构造方法在执行自己的任务之前将会调用基类的构造方法。C#也是这样吗?,第1张

C#默认是调用基类的无参构造函数

当创建派生类的对象时,系统将会调用基类的构造函数和派生类的构造函数,构 造函数的执行次序是:先执行基类的构造函数,再执行派生类的构造函数。如果派生类又有对象成员,则,先执行基类的构造函数,再执行成员对象类的构造函数,最后执行派生类的构造函数。

至于执行基类的什么构造函数,缺省情况下是执行基类的无参构造函数,如果要执行基类的有参构造函数,则必须在派生类构造函数的成员初始化表中指出

举个简单的例子:

#include<iostream>

using namespace std;

class Point { //定义点的类

public:

Point(double x0,double y0) {x=x0;y=y0;}

void showpoint() {cout<<x<<" "<<y<<endl;}

private:

double x, y;

};

class Circle : public Point{ //派生类继承点类,多加了半径的数据成员

public:

Circle(double x0,double y0,double radius):Point(x0,y0),r(radius){} //派生类构造函数定义

void diaplay() { showpoint(); cout<<r<<endl;}

private:

double r;

};

int main()

{

Circle c=new Circle(1,1,2); //初始化派生类对象c

c->diaplay();

delete c;

system("pause");

return 0;

}

输出:

1 1

2

因为构造函数和析构函数不能继承,所以派生类的构造函数方式为:

派生类类名(派生类数据成员参数列表):基类类名(基类参数列表),派生类新增数据成员(参数列表){}

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/12156556.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存