C++ 构造函数2025 年 8 月 29 日 | 阅读 9 分钟 在 C++ 中,构造函数是一种特殊的方法,在对象创建时自动调用。它通常用于初始化新对象的数据成员。在 C++ 中,构造函数的名称与 类 或结构体的名称相同。 类内构造函数的语法它具有以下语法: 类外构造函数的语法简单的 C++ 构造函数示例让我们用一个例子来说明 C++ 中的类内构造函数。 示例编译并运行输出 Brand: Toyota Model: Fortuner Year: 2020 说明 在这个例子中,我们创建了一个名为 Car 的类。构造函数使用默认值初始化成员变量 brand、model 和 year。当在 main() 函数中创建 my_car 对象时,构造函数会自动调用,设置这些默认值。之后,cout 语句显示初始化后的值。 C++ 构造函数的类型在 C++ 中,构造函数可以分为四类 ![]()
在这里,我们将逐一讨论这些构造函数。 C++ 默认构造函数不带参数的构造函数称为默认构造函数。它在创建对象时被调用。它允许我们将类成员变量初始化为其默认值。它也称为零参数构造函数。 语法 它具有以下语法: C++ 默认构造函数示例让我们用一个简单的例子来说明 C++ 中的默认构造函数。 示例编译并运行输出 Default Constructor Invoked Default Constructor Invoked 说明 在这个例子中,我们创建了一个名为 Employee 的类。每次创建类的对象时,都会自动调用构造函数。在 main() 函数中,创建了两个对象(e1 和 e2),这导致构造函数被调用两次。最后,打印两次“Default Constructor Invoked”的消息。 C++ 参数化构造函数在 C++ 中,带有参数的构造函数称为参数化构造函数。它用于为不同对象提供不同的值。它有助于初始化成员数据。当我们想要定义构造函数体时,我们可以使用参数来初始化对象。 语法 它具有以下语法: C++ 参数化构造函数示例让我们用一个例子来说明 C++ 中的参数化构造函数。 示例编译并运行输出 201 John 650000 202 Alice 750000 说明 在这个例子中,我们创建了一个名为 Employee 的类,其中包含 ID、name 和 salary 等多个成员变量。在 main() 函数中,我们分配了对象的值。之后,我们创建了 Employee 类的 emp1 和 emp2 对象,它们显示了输出。 复制构造函数一种称为复制构造函数的成员函数,它有助于使用同一类中的另一个对象来初始化一个项。复制构造函数需要同一类对象的引用。 阅读更多:复制构造函数 语法 它具有以下语法: C++ 复制构造函数示例让我们用一个例子来说明 C++ 中的复制构造函数。 示例编译并运行输出 Length: 10 Length: 10 说明 在这个例子中,“Box”类有一个接受 box “length”参数的构造函数。之后,复制构造函数通过复制“length”的值来从现有对象创建一个新的“Box”对象。在 main() 函数中,我们使用复制构造函数复制一个“Box”对象,两个对象都显示它们的“length”。 移动构造函数在 C++ 中,移动构造函数是一种特殊的构造函数,它允许将一个对象的一部分资源移动到另一个对象,而不是在内存中复制对象。它与右值引用一起工作,并且基于移动语义。它使我们能够在不执行深拷贝的情况下将资源的所有权从一个对象转移到另一个对象,这有助于提高程序的性能。 语法 它具有以下语法: C++ 移动构造函数示例让我们用一个例子来说明 C++ 中的移动构造函数。 示例编译并运行输出 Constructor called Move Constructor called Hello Tpoint Tech Null string 说明 在这个例子中,我们创建了一个名为 Tpoint 的类,它处理一个动态分配的 C 风格字符串。该类包含一个初始化字符串的构造函数、一个用于深拷贝的复制构造函数、一个用于高效转移字符串所有权的移动构造函数以及一个用于释放分配内存的析构函数。 在 main() 函数中,创建了一个 T1 对象,其中包含一个字符串,并且使用 std::move(T1) 函数初始化 T2,该函数调用移动构造函数。 C++ 构造函数的特点C++ 构造函数的一些特点如下
带默认参数的构造函数构造函数可以具有一些默认参数值,这基本上意味着如果未传递任何值,则将使用默认值。 C++ 带默认参数的构造函数示例让我们用一个简单的 C++ 带默认参数的构造函数示例。 示例编译并运行输出 Area of Rectangle: 15 Area of Rectangle: 70 说明 在此示例中,我们创建了一个构造函数,其中 length 和 width 的默认值为 5 和 3。如果对象在没有参数的情况下创建,则使用给定的默认值。如果传递了参数,则会覆盖默认值。 构造方法重载构造函数重载允许多个构造函数具有不同的参数。它使我们能够根据情况以各种方式创建对象。 阅读更多:构造函数重载 C++ 构造函数重载示例让我们用一个 C++ 构造函数重载的简单示例。 示例编译并运行输出 Name: Unknown, Age: 0 Name: John Doe, Age: 30 说明 在此示例中,我们创建了一个名为 Person 的类,它提供了两个构造函数:一个不带参数,另一个接受 name 和 age。之后,根据情况,一个实例化可以使用一个构造函数,而另一个实例化可以使用另一个。 带初始化列表的构造函数这种初始化成员变量的方法更快。它主要用于 const 变量或在对象创建时需要初始化的引用。 C++ 带初始化列表的构造函数示例让我们用一个 C++ 带初始化列表的构造函数的简单示例。 示例编译并运行输出 Book Title: The C++ Programming Language, Year: 2025 结论 在 C++ 中,构造函数是对象初始化和资源管理的重要组成部分。它们可以确保所有对象都有有效的值,并且还可以管理资源。通过了解所有形式的构造函数(默认、参数、复制),我们可以编写更强大、更简洁的 C++ 代码。 C++ 构造函数选择题1) C++ 中构造函数的主要目的是什么?
答案:b) 在对象构建期间初始化对象 2) 关于默认构造函数,以下哪项陈述是正确的?
答案:c) 默认构造函数不带任何参数。 3) 下列哪项最能描述编译器生成的复制构造函数的默认行为?
答案:c) 它执行所有成员的浅拷贝。 4) 关于 C++ 中的构造函数重载,以下哪项是正确的?
答案:d) 可以通过更改参数列表来重载构造函数 5) 关于复制构造函数,以下哪项是正确的?
答案:d) 它应该通过引用接受其参数 下一主题C++ 参数化构造函数 |
在本文中,我们将了解 C++ 编程语言中构造函数和析构函数的比较。我们将从本文中学到的第一件事是构造函数和析构函数的基本概念。之后,我们将学习各种比较……
阅读 4 分钟
在 C++ 中,复制构造函数是一种构造函数,它通过复制同一类中已存在对象的内容来创建新对象。每当使用同一类的另一个对象初始化对象时,就会调用它。这个过程……
阅读 10 分钟
我们知道,每当我们创建一个类时,就会创建一个默认构造函数,它在其他语言中基本上是不可见的。但是当我们自己创建一个构造函数时,我们可以灵活地传递我们认为对构造函数必要的参数……
阅读 4 分钟
在 C++ 编程语言中,析构函数的作用与构造函数正好相反。它用于销毁类的对象。它在类中只能定义一次。像构造函数一样,它会自动调用。析构函数定义为构造函数。它必须具有……
7 分钟阅读
在 C++ 中,虚析构函数用于在删除派生类对象的实例时释放基类指针对象分配的派生类对象或实例的内存空间。基类或父类析构函数使用 virtual 关键字,该关键字……
阅读 8 分钟
在 C++ 中,构造函数重载是 OOPs(面向对象编程)中的一项重要功能,它允许一个类拥有多个具有不同参数的构造函数。可以定义具有不同参数列表的多个构造函数变体,以便以各种方式创建对象。类实例由……确定
阅读9分钟
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India