编程语言中的构造函数

sgo*_*les 4 .net c# java constructor

为什么constructor不被视为member班级?
有什么具体原因吗?

感谢致敬.

Eri*_*ert 9

我拒绝这个问题的前提.构造函数 C#中的类或结构的成员.

我将向您推荐C#规范的3.4.4节("类成员"),它列举了类的成员:

类声明可以包含常量,字段,方法,属性,事件,索引器,运算符,实例构造函数,析构函数,静态构造函数和类型的声明.

显然,构造函数是类的成员.为什么你认为构造函数不是成员?谁告诉你这个谎言?


Chr*_*rau 8

成员继承到子类.构造函数不得继承,因此不被视为成员.

构造函数不是继承的,因为它们的任务是初始化其特定类的属性.任何子类都必须初始化其附加属性,对于此任务,它需要一个自己的构造函数来了解其他属性.

此外,每个构造函数必须直接或间接调用其超类构造函数之一作为其第一个操作,以便为超类提供初始化更改.

  • 只是为了澄清,这个答案适用于问题的Java方面.在C#中,构造函数是类成员. (2认同)

小智 7

在C++中,构造函数当然被认为是类的成员--C++标准在"特殊成员函数"一节中描述了它们.