
正文
c语言一个类不用构造函数行吗,一个类的构造函数可以不包含对其成员对象的初始化
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
构造函数是用来初始化所定义的对象,如果一个类中没有定义任何构造函数...
不对,c++里不写类的构造函数时,编译器会为类创建一个默认的构造函数,虽然这个函数什么都不做,但是类的对象还是会在此时初始化,不过,对象成员的值是随机的,比如,指针型成员变量可能为NULL,也有可能不为NULL。
构造函数是在创建类对象实例的时候调用的,一般用来做成员的初始化。如果手动没有提供相应的构造函数,则自动生成一个默认构造函数。
}//构造函数允许直接写在类定义内,也允许有参数表。
构造函数的函数名称与类名同名,其他方法(函数)名称可以自定义。
构造函数(constructor)是一种特殊的方法 。主要用来在创建对象时初始化对象, 即为对象成员变量赋初始值,总与new运算符一起使用在创建对象的语句中 。
相关问答
Q1: 可以定义没有构造函数的类吗?任一类必须要由构造函数吗?
不一定的,如果你自己实现了构造函数,就没有,如果没有实现构造函数,系统会默认加上一个无参数的构造函数。应该说c++的类必须有构造函数。
默认构造函数(default constructor)就是在没有显式提供初始化式时调用的构造函数。它由不带参数的构造函数,或者为所有的形参提供默认实参的构造函数定义。如果定义某个类的变量时没有提供初始化时就会使用默认构造函数。
构造器不是必需加的,但是在没有任何构造器的情况下(包括有参数,无参数),Java会默认地为类增加一个无参构造器,本质上是每个类都有构造器。
一个类中可以没有用户定义的构造函数,此时编译器会自动为用户提供一个默认构造函数(无参构造函数)。 所以,命题错误。
JAVA 的类一定会有构造函数,如果你没有写,他会有默认的,默认的是没有参数的。如果是普通的类。直接像这样:dog d=new dog();这个是初始化。如果不实例化的。那么它里面的方法是无法使用的。
构造函数不能显式调用,构造函数是当创建一个类的实例的时候由系统调用的。是先创建对象后,再调用构造函数,而不是构造函数用来创建对象的。构造函数的作用是当需要对对象成员初始化时,我们可以在构造函数中编写初始化代码。
Q2: 是不是写一个类必须要自己写构造函数?
1、一般如果你要在实例化这个类的时候希望它把像:成员变量初始化等等操作完成的话,你就可以自己显式的写上一个,如果不必做这些的话,不写没关系,编译器给你个默认为空的构造函数。
2、但是你写的时候可以不写构造函数,但你构造出来的类还是有构造函数。这是因为你不写构造函数的话,其实 C++ 会自动的帮你加上一个构造函数,这个就是默认的构造函数。
3、JAVA 的类一定会有构造函数,如果你没有写,他会有默认的,默认的是没有参数的。如果是普通的类。直接像这样:dog d=new dog();这个是初始化。如果不实例化的。那么它里面的方法是无法使用的。
Q3: 创建一个类的对象必须调用构造函数吗
1、不一定的,如果你自己实现了构造函数,就没有,如果没有实现构造函数,系统会默认加上一个无参数的构造函数。应该说c++的类必须有构造函数。
2、严格的说,是的。因为类有继承的关系,因此即使你没有定义构造函数,在new的时候依然是要执行构造函数的。
3、要创建一个对象,就得调用构造函数。要销毁一个对象,就会被迫的调用析构函数。
4、默认构造函数(default constructor)就是在没有显式提供初始化式时调用的构造函数。它由不带参数的构造函数,或者为所有的形参提供默认实参的构造函数定义。如果定义某个类的变量时没有提供初始化时就会使用默认构造函数。
Q4: c++编写一个类一定要加上构造函数吗?
1、这里面涉及到对语言的理解,可以这么说,C++ 里面的所有类都有构造函数。但是你写的时候可以不写构造函数,但你构造出来的类还是有构造函数。
2、一定有构造函数,但是不一定要显式的实现。可以使用默认构造函数。
3、设置初始值、分配内存空间等。而析构函数则用于删除对象时做收尾工作,比如释放申请的空间等。要创建一个对象,就得调用构造函数。要销毁一个对象,就会被迫的调用析构函数。
4、是,如果自己不提供,系统会自动生成一个空的构造函数。
5、系统默认的构造函数一般是直接用0填充这个对象所占用的内存。如果你需要在这个对象一定义的时候就给它的某个变量赋值,或是给对象中的某个指针分配一段内存空间,或是别的什么特殊功能,你就需要用自己定义的构造函数了。
6、于是C++就给构造对象的同事绑定了构造函数,这样只要你创建对象就一定会初始化。
c语言一个类不用构造函数行吗的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于一个类的构造函数可以不包含对其成员对象的初始化、c语言一个类不用构造函数行吗的信息别忘了在本站进行查找喔。






