📜  C++默认构造函数|内置类型(1)

📅  最后修改于: 2023-12-03 15:29:55.633000             🧑  作者: Mango

C++ 默认构造函数和内置类型

在 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++ 中的默认构造函数对于内置类型和自定义类都非常有用。它们使得我们可以在不显式初始化变量的情况下创建对象,并且可以保证变量始终被正确地初始化。