可以定义没有构造函数的类吗?任一类必须要由构造函数吗?
来源:学生作业帮 编辑:神马作文网作业帮 分类:综合作业 时间:2024/09/24 12:29:03
可以定义没有构造函数的类吗?任一类必须要由构造函数吗?
首先所有类都是有构造函数、复制构造函数和析构函数的;但是如果我们不显式地定义它们,编译器会自动为我们添加默认的构造函数、复制构造函数和析构函数;如果我们显式地定义了构造函数、复制构造函数或者析构函数,那么编译器就会使用我们定义的函数.
例如: class A {}; 类A中没有定义任何成员,但是编译器会为它添加默认的 构造函数、复制构造函数和析构函数,以便创建对象,销毁对象和复制对象;
默认的构造函数 和 析构函数 都是public的,不做任何事情 的,相当于函数体是空的,其中构造函数默认是无参数的;默认的复制构造函数是把所有成员复制给另一个对象(属于 浅复制 )
下面是显式定义 构造函数、复制构造函数和析构函数 的例子
#include
using namespace std;
class A
{
public:
A(string name) //显式定义构造函数,系统将不产生默认构造函数,而使用定义的构造函数
{
this->name = name;
cout
例如: class A {}; 类A中没有定义任何成员,但是编译器会为它添加默认的 构造函数、复制构造函数和析构函数,以便创建对象,销毁对象和复制对象;
默认的构造函数 和 析构函数 都是public的,不做任何事情 的,相当于函数体是空的,其中构造函数默认是无参数的;默认的复制构造函数是把所有成员复制给另一个对象(属于 浅复制 )
下面是显式定义 构造函数、复制构造函数和析构函数 的例子
#include
using namespace std;
class A
{
public:
A(string name) //显式定义构造函数,系统将不产生默认构造函数,而使用定义的构造函数
{
this->name = name;
cout
可以定义没有构造函数的类吗?任一类必须要由构造函数吗?
类构造函数定义的位置是
在派生类构造函数的定义中可以省略对基类构造函数的调用,其条件是基类中必须有默认的构造函数
构造函数定义在类里和类外有没有区别?
默认构造函数的定义
为矩形类定义复制构造函数
构造函数可以是虚函数吗
java类中定义构造函数时定义了一个有参数的构造函数 ,是否必须定义空参数构造函数?
C++类中如果不定义复制构造函数的话,系统是不是自己定义默认的复制构造函数?
java中的子类继承父类的构造函数可以不用super吗,还有就是子类要全部继承父类的构造函数吗
构造函数必须定义吗?构造函数必须带参数吗
类中构造函数和成员函数相同吗