目录
有参构造
无参构造
半缺省构造
有参构造
C++ 中的有参构造函数(Parameterized Constructor)是一个类中带有参数的特殊成员函数,用于创建对象并根据传入的参数对对象的成员进行初始化。有参构造函数在定义时需要指定参数的类型和名称,并在使用时需要提供相应的参数值。
下面是一个示例展示了如何在 C++ 中定义一个有参构造函数:
在上面的示例中,我们定义了一个名为 MyClass
的类,其中包含一个整数类型的成员变量 value
。然后,我们定义了一个有参构造函数 MyClass(int val)
,该构造函数接收一个整数参数 val
并将其赋值给 value
成员变量。在 main
函数中,我们使用有参构造函数创建了一个对象 obj
,并打印了 value
成员变量的值。
无参构造
在C++中,无参构造函数是一个没有任何参数的特殊构造函数。它没有输入参数,在创建类对象时自动调用。下面是一个示例:
在上面的示例中,string 类有一个无参构造函数,当创建 string 类的对象时,该构造函数会被自动调用。
使用无参构造函数的主要目的是在创建对象时完成对象的初始化。如果未提供任何构造函数,编译器将生成一个默认的无参构造函数,但如果你定义了其他带参数的构造函数,编译器将不会自动生成无参构造函数。因此,如果你想在类中使用无参构造函数,则需要明确地定义它。
半缺省构造
在C++中,缺省构造函数(Default Constructor)是一种没有参数的构造函数,它会被自动调用来创建一个类的对象。而半缺省构造函数(Semi-Default Constructor)是指带有默认参数值的构造函数。
下面是一个使用半缺省构造函数的示例:
在上面的示例中,Rectangle
类有两个私有成员变量 length
和 width
,还定义了一个半缺省构造函数。该构造函数可以接受两个参数 l
和 w
,并且给这两个参数提供了默认值0。这意味着,当我们创建 Rectangle
对象时,如果没有提供参数,则会使用默认值构造对象。
在 main()
函数中,我们可以看到三种方式使用半缺省构造函数创建 Rectangle
对象。rectangle1
是使用缺省构造函数创建的对象,会将 length
和 width
初始化为0。rectangle2
是提供了一个参数5,而宽度使用默认值0进行初始化。rectangle3
则提供了两个非默认的参数,长度为3,宽度为4。
半缺省构造函数在一些情况下很有用,可以通过指定部分参数的方式创建对象,简化代码并提供灵活性。