Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 默认构造函数的用途是什么_C++_Constructor_Default Constructor - Fatal编程技术网

C++ 默认构造函数的用途是什么

C++ 默认构造函数的用途是什么,c++,constructor,default-constructor,C++,Constructor,Default Constructor,cpp的主要格言之一是避免未初始化的变量。那么,编译器在不初始化变量的情况下提供的默认构造函数有什么用。隐式生成的默认构造函数调用所有成员和基类的默认构造函数。它们可以隐式生成,也可以不隐式生成(意味着,某些成员或成员的成员等可能有一个非隐式生成的默认构造函数,一个实际执行某些操作的构造函数)。隐式生成的默认构造函数调用所有成员和基类的默认构造函数。它们可以隐式生成,也可以不隐式生成(意味着,某些成员或成员的成员等可能有一个非隐式生成的默认构造函数,一个实际执行某些操作的构造函数)。隐式生成的默

cpp的主要格言之一是避免未初始化的变量。那么,编译器在不初始化变量的情况下提供的默认构造函数有什么用。

隐式生成的默认构造函数调用所有成员和基类的默认构造函数。它们可以隐式生成,也可以不隐式生成(意味着,某些成员或成员的成员等可能有一个非隐式生成的默认构造函数,一个实际执行某些操作的构造函数)。

隐式生成的默认构造函数调用所有成员和基类的默认构造函数。它们可以隐式生成,也可以不隐式生成(意味着,某些成员或成员的成员等可能有一个非隐式生成的默认构造函数,一个实际执行某些操作的构造函数)。

隐式生成的默认构造函数调用所有成员和基类的默认构造函数。它们可以隐式生成,也可以不隐式生成(意味着,某些成员或成员的成员等可能有一个非隐式生成的默认构造函数,一个实际执行某些操作的构造函数)。

隐式生成的默认构造函数调用所有成员和基类的默认构造函数。它们可以隐式生成,也可以不隐式生成(也就是说,某些成员或成员的成员等可能有一个非隐式生成的默认构造函数,一个实际执行某些操作的构造函数)。

在某些情况下,需要一个默认构造函数。比如说

MyClass arrayOfObjects[10];
这里调用默认构造函数,即使您要为数组中的对象分配新值。或者一个派生类构造函数,它不显式调用父构造函数。甚至是一个简单的变量声明:

MyClass x; // calls default constructor
...
x = ..;

在某些情况下,需要使用默认构造函数。比如说

MyClass arrayOfObjects[10];
这里调用默认构造函数,即使您要为数组中的对象分配新值。或者一个派生类构造函数,它不显式调用父构造函数。甚至是一个简单的变量声明:

MyClass x; // calls default constructor
...
x = ..;

在某些情况下,需要使用默认构造函数。比如说

MyClass arrayOfObjects[10];
这里调用默认构造函数,即使您要为数组中的对象分配新值。或者一个派生类构造函数,它不显式调用父构造函数。甚至是一个简单的变量声明:

MyClass x; // calls default constructor
...
x = ..;

在某些情况下,需要使用默认构造函数。比如说

MyClass arrayOfObjects[10];
这里调用默认构造函数,即使您要为数组中的对象分配新值。或者一个派生类构造函数,它不显式调用父构造函数。甚至是一个简单的变量声明:

MyClass x; // calls default constructor
...
x = ..;


我想你指的是隐式生成的默认构造函数,而不仅仅是任何默认构造函数。关键是它提供了一个可以初始化对象的地方。“cpp的主要格言之一是避免未初始化的变量。”-真的吗?你从哪里得到的?我想你指的是隐式生成的默认构造函数,而不仅仅是任何默认构造函数。关键是它提供了一个可以初始化对象的地方。“cpp的主要格言之一是避免未初始化的变量。”-真的吗?你从哪里得到的?我想你指的是隐式生成的默认构造函数,而不仅仅是任何默认构造函数。关键是它提供了一个可以初始化对象的地方。“cpp的主要格言之一是避免未初始化的变量。”-真的吗?你从哪里得到的?我想你指的是隐式生成的默认构造函数,而不仅仅是任何默认构造函数。关键是它提供了一个可以初始化对象的地方。“cpp的主要格言之一是避免未初始化的变量。”-真的吗?你从哪里得到的?谢谢dave,但是对于一个没有成员类或基类的简单类,有没有使用编译器定义的默认构造函数。我的观点是,如果编译器没有提供默认构造函数,并且给出了错误,我们会被警告,我们错过了构造函数,有地方初始化变量。@user2967369不初始化变量本身并没有错。在初始化或分配原语之前使用原语是错误的。例如,你可以写<代码>整数x;cin>>x-没有理由在此处初始化
x
。C++(几乎)总是提供你想要的最低公分母。我并不是说你的建议不好,我们有隐式生成的构造函数/运算符可能是为了方便。@user2967369我想你应该把你的Q标题改为“为什么有隐式生成的默认构造函数?”。。。可能有很多遗留原因-重要的是,与C的兼容性。谢谢dave,但是对于一个没有成员类或基类的简单类,是否使用了编译器定义的默认构造函数。我的观点是,如果编译器没有提供默认构造函数,并且给出了错误,我们会被警告,我们错过了构造函数,有地方初始化变量。@user2967369不初始化变量本身并没有错。在初始化或分配原语之前使用原语是错误的。例如,你可以写<代码>整数x;cin>>x-没有理由在此处初始化
x
。C++(几乎)总是提供你想要的最低公分母。我并不是说你的建议不好,我们有隐式生成的构造函数/运算符可能是为了方便。@user2967369我想你应该把你的Q标题改为“为什么有隐式生成的默认构造函数?”。。。可能有很多遗留原因-重要的是,与C的兼容性。谢谢dave,但是对于一个没有成员类或基类的简单类