C# 必须创建构造函数吗?不是说系统会自动创建,那实例化的时候,系统会自动创建,那就不写了,是吗

C# 必须创建构造函数吗?不是说系统会自动创建,那实例化的时候,系统会自动创建,那就不写了,是吗,第1张

楼上说的已经很清楚了,总结来说

1,写一个类,构造函数可写可不写(不写也没事,系统会有个隐藏的无参数构造函数,写了也没事)

public class myClassName

{

}

//在其它地方实例化

myClassName my=new myClassName()

2,要是想在其他地方引用带参数初始化myClassName my=new myClassName("aaa")

这时候只添加一个带参数的构造函数是错误的,还需要把没参数的构造函数也写出来public class myClassName

{

public myClassName() {}

public myClassName(string name){}

}

就是你不写构造函数,系统会默认给补一个隐藏的无参数构造函数,但是只要写了构造函数,系统就不管了默认了,就要把无参数的构造函数也写出来

这里面涉及到对语言的理解,可以这么说,C++ 里面的所有类都有构造函数。

但是你写的时候可以不写构造函数,但你构造出来的类还是有构造函数。

这是因为你不写构造函数的话,其实 C++ 会自动的帮你加上一个构造函数,这个就是默认的构造函数。

再贴一段百科的定义你就懂了:

默认构造函数(default constructor)就是在没有显式提供初始化式时调用的构造函数。它由不带参数的构造函数,或者为所有的形参提供默认实参的构造函数定义。如果定义某个类的变量时没有提供初始化时就会使用默认构造函数。

在一个类中如果你不写构造函数,是有一个默认的构造函数的。

如果你写了一个有参的构造函数,那么系统将不提供这个无参数的构造函数,此时我们建议自己手动添加这个无参数的构造函数。

因为在有些方法调用的过程中,会调用这个无参数的构造函数,这样就会出现错误!

为了避免这种错误的发生,我们手动添加这个无参数的构造函数!


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

原文地址: http://outofmemory.cn/bake/11901626.html

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

发表评论

登录后才能评论

评论列表(0条)

保存