📅  最后修改于: 2023-12-03 15:29:55.633000             🧑  作者: Mango
在 C++ 中,每个类都有一个默认的构造函数,用于创建该类的实例。如果类没有显式定义构造函数,则编译器会自动创建一个默认构造函数。
对于内置类型,也有默认构造函数。这意味着,如果我们声明一个内置类型的变量但没有初始化它,它将被自动初始化为零或 false,具体取决于该类型是数值型还是布尔型。
例如,以下代码演示了 int 类型和 bool 类型的默认构造函数的用法:
#include <iostream>
int main() {
int a; // a is initialized to 0 by default constructor
bool b; // b is initialized to false by default constructor
std::cout << "a = " << a << std::endl;
std::cout << "b = " << b << std::endl;
return 0;
}
当我们运行此程序时,输出将如下所示:
a = 0
b = 0
在此示例中,变量 a 和 b 都没有被初始化,但它们的默认构造函数将它们初始化为 0 和 false。
需要注意的是,对于自定义类,如果它包含了成员变量,那么这些成员变量也需要被初始化。如果类没有提供构造函数来初始化这些成员变量,则这些成员变量将被默认构造函数初始化为零或 false,具体取决于它们的类型。
例如,假设我们有一个包含两个 int 类型成员变量的类 Point:
class Point {
public:
int x;
int y;
};
在这个例子中,Point 类没有显式定义构造函数,因此编译器将为该类创建一个默认构造函数。由于 Point 类中包含两个 int 类型成员变量,它们将被默认构造函数初始化为 0。
因此,以下代码将输出 0 0:
#include <iostream>
int main() {
Point p;
std::cout << "x = " << p.x << std::endl;
std::cout << "y = " << p.y << std::endl;
return 0;
}
总之,C++ 中的默认构造函数对于内置类型和自定义类都非常有用。它们使得我们可以在不显式初始化变量的情况下创建对象,并且可以保证变量始终被正确地初始化。