默认构造函数的作用(构造函数和默认构造函数)
- 前端设计
- 2023-09-18
- 176
大家好,今天小编来为大家解答默认构造函数的作用这个问题,构造函数和默认构造函数很多人还不知道,现在让我们一起来看看吧!C++中,默认构造函数、无参构造函数、带有默认值的...
大家好,今天小编来为大家解答默认构造函数的作用这个问题,构造函数和默认构造函数很多人还不知道,现在让我们一起来看看吧!
C++中,默认构造函数、无参构造函数、带有默认值的构造函数,究竟怎么区分
在创建对象时调用构造函数,构造函数来初始化成员变量。可以有多个构造函数,他们的区别就是参数不同。所有可以用不同的构造函数初始化一个对象。
默认构造函数,就是调用构造函数时,不必给出实参的构造函数。
在一个类中定义了全部是默认参数的构造函数后,不能再定义重载构造函数。
例:Box(int=10,int=10,int=10)
;1Box()
;2Box(int,int)
;3若有以下定义语句:
Boxbox1;//是调用上面的第一个默认参数的构造函数,还是第二个默认构造函数Boxbox2(15,30)
;//是调用上面的第一个默认参数的构造函数,还是第三个构造函数扩展资料:
第2个构造函数是最基本,最原始的构造函数;第1个就是形参都已默认,指定了的构造函数,调用时实参可以传过去1个,2个,3个,甚至0个数据。
比如,第一个语句:Boxbox1;我们可以认为他是直接调用第2个构造函数,也可以认为他是调用了第1个构造函数,只不过没有实参传递过去而已,这样就产生了歧义。
同理,第二个语句,我们可以理解为它调用了第3个构造函数。但同时,理解为它调用第1个构造函数,只不过仅传过去2个实参,也是可是说得通的。这也就产生了歧义。事实上,上面3个函数中任意一个都可以说是另两个的重载函数,那么“在一个类中定义了全部是默认参数的构造函数后,不能再定义重载构造函数”就很好容易理解了
子类为什么要调用父类的构造函数
子类构造器会默认调用父类的无参构造器,如果父类没有无参构造器,则需在子类构造器的第一行显式地调用父类的其他构造器。
其次,从继承的思想来看,你继承一个类,就相当于扩展一个类,形成一个更为特殊的类,但经常,我们需要将子类向上转型为基类,以便使用或达到其他各种目的。
这时,如果你生成子类对象时没有调用父类的构造器,那么,我们在使用父类的一些成员变量的时候,就会报变量未初始化的错误。请记住,变量初始化总是在构造器调用之前完成!
构造一个对象,先调用其构造方法,来初始化其成员函数和成员变量。子类拥有父的成员变量和成员方法,如果不调用,则从父类继承而来的成员变量和成员方法得不到正确的初始化。
什么叫构造函数
构造函数是一种特殊的方法,用于在创建对象时初始化对象,即为对象成员变量赋初始值。它必须与类名相同,不能有返回值,可以有多个参数。构造函数伴随new操作一起被执行,不能由自己去调用,是由系统调用的,且只被调用一次。构造函数的作用主要是完成对象的初始化工作,可以利用构造函数进行初始化。一个类可以有多个构造函数,可根据其参数个数的不同或参数类型的不同来区分它们,即构造函数的重载
构造函数是什么它与一般函数有什么区别
构造函数是一种特殊的方法。主要用来在创建对象时初始化对象,即为对象成员变量赋初始值,总与new运算符一起使用在创建对象的语句中。特别的一个类可以有多个构造函数,可根据其参数个数的不同或参数类型的不同来区分它们即构造函数的重载。
构造函数与一般函数的区别:
1、构造函数是没有返回值类型的。
2、构造函数的函数名必须要与类名一致。
3、构造函数并不是由我们手动调用的,而是在创建对应的对象时,jvm就会主动调用到对应的构造函数。
4、如果一个类没有显式的写上一个构造方法时,那么java编译器会为该类添加一个无参的构造函数的。
5、如果一个类已经显式的写上一个构造方法时,那么java编译器则不会再为该类添加一个无参的构造方法。
6、构造函数是可以在一个类中以函数重载的形式存在多个的。
条带构造器作用
构造器最大的用处就是在创建对象时执行初始化,当创建一个对象时,系统会为这个对象的实例进行默认的初始化。如果想改变这种默认的初始化,就可以通过自定义构造器来实现。构造器可以提供许多特殊的方法,构造器作为一种方法,负责类中成员变量(域)的初始化。
默认参数的构造函数特点
特点;
1.默认构造函数没有返回值
2.默认构造函数不带任何参数
如果你还想了解更多这方面的信息,记得收藏关注本站。
本文链接:http://xinin56.com/qianduan/26666.html