C++ 类和对象

2025 年 8 月 29 日 | 阅读 9 分钟

在 C++ 编程语言中,类和对象是面向对象编程的基础构建块。它们以更组织化、可重用和易于维护的方式提供代码。在 C++ 中,类充当蓝图,定义对象如何在程序中构建和运行。另一方面,对象是类的实例,用于保存数据和方法来创建和操作各种实体。

C++ 类

在 C++ 中,类是一种用户定义的数据类型,充当创建对象的蓝图。它用于将数据成员和成员函数收集到一个单元中。类关键字用于在 C++ 中创建类。类有几个特性,包括字段、方法、构造函数等。

例如

C++ Classes and Objects

考虑一辆汽车类。可以有不同名称和品牌的几辆汽车,但这些汽车将共享许多共同的属性,例如轮子、里程范围、限速以及许多其他属性。它还包含转向、刹车、档位、加速器等。现在,汽车是类,其数据成员是轮子、里程范围和限速,其成员函数是转向、刹车、档位和加速器。

定义类

在 C++ 中,类在使用前应先定义和声明。它使用 C++ 中的 class 关键字定义。类的正文定义在花括号内,并在末尾以分号终止。

语法

它具有以下语法:

在这个语法中,

  • 数据成员:数据成员是在程序类中定义的变量。
  • 成员函数:在类中声明的函数称为成员方法。
  • 访问说明符:这些是用于控制数据成员和方法可访问性的关键字(例如 public、private 和 protected)。

C++ 类示例

让我们看一个示例来演示 C++ 中的类。

示例

编译并运行

输出

Enter the Name: John
Enter the Age: 25

说明

在此示例中,我们定义了一个名为 Employee 的类,该类具有两个公共数据成员 name 和 age,以及一个显示员工详细信息的成员函数 displayInfo()。

在 main() 函数中,创建了 Employee 类的对象 e1。将值“John”和 25 分配给对象的 name 和 age。最后,调用 displayInfo() 函数来显示这些值。

类访问说明符

在 C++ 类中,可以使用访问说明符来控制对类成员的访问。访问说明符也称为 C++ 中的访问修饰符。这些说明符关键字定义在类中,所有类成员在访问说明符下都将具有特定的访问级别。

C++ 中主要有 3 种访问说明符。

  1. Public:在 C++ 中,可以使用点 (.) 运算符从类外部访问公共数据成员。
  2. Private:私有数据成员只能在 C++ 类内部访问。它们不能直接从类外部访问。
  3. Protected:类的保护成员变量充当私有成员。它可以在类内部以及由派生类访问。

阅读更多: C++ 中的访问说明符

C++ 对象

对象代表一个现实世界的实体,例如椅子、汽车、笔、手机或笔记本电脑。它包含状态(数据)和行为(函数)。对象允许我们访问类的成员,并且我们可以从一个类创建多个对象。

C++ Classes and Objects

在 C++ 中,对象是类的实例。当在程序中声明一个类时,在创建该类的对象之前不会分配内存。

在 C++ 中创建对象

一旦在程序中定义了类,我们就可以像定义任何其他内置数据类型的变量一样轻松地创建其对象。

其中,

  • class_Name:它表示类的名称。
  • object_Name:它表示类对象的名称。

例如

在这里,Employee 是类名,emp1 和 emp2 是对象名。

访问数据成员

在 C++ 中,类成员可以直接在类内部使用其分配的名称进行访问。如果我们想在类外部访问类成员,我们可以使用点 (.) 运算符访问其成员。

例如

在此示例中,obj 指的是类的对象名称,member1 表示数据成员,member2 表示成员函数。

C++ 对象示例

让我们看一个示例来说明 C++ 中的对象。

示例

编译并运行

输出

Name of the Course: C++
Time Duration of Course: 1 Year

说明

在此示例中,我们使用了一个名为 Tpoint 的类,该类具有两个数据成员和一个函数。Tpoint1 是 Tpoint 类的对象。使用点 (.) 运算符访问和操作类成员。

对象的特征

C++ 对象有几个特征,如下所示

  • 状态:它指的是对象中存储的属性或数据。它定义了当前条件或存储在对象中的值。
  • 行为:它指的是与对象相关的函数。它定义了对象可以执行的操作。例如,学生对象的研究方法(如 study()),或显示对象信息的显示方法(如 displayInfo())。
  • 标识:每个对象都有唯一的标识,并且其属性也与其他对象相同。

C++ 类和对象示例

让我们看一个包含两个字段(id 和 name)的类的实例。它创建一个类的实例,初始化对象,并打印对象值。

示例

编译并运行

输出

101
John Miller

说明

在此示例中,我们使用了一个名为 Employee 的类,该类定义了两个公共数据成员:emp_id 和 emp_name。在 main() 函数中,我们创建了一个类型为 Employee 的对象 emp1。之后,直接为对象的公共数据成员分配值。使用点 (.) 运算符访问对象成员的值。

C++ 类示例:通过方法初始化和显示数据

让我们看另一个 C++ 类示例,其中我们通过方法初始化和显示对象。

示例

编译并运行

输出

101  John
102  Alice

说明

在此示例中,我们使用了一个名为 Employee 的类,其成员以 string 和 integer 类型给出员工姓名和 ID 号。在 main() 函数中,我们为 emp1.id 和 emp2.id 分别定义值为 101 和 102,并将姓名设置为 John 和 Alice。

C++ 类示例:存储和显示员工信息

让我们看另一个 C++ 类示例,其中我们使用该方法存储和显示员工信息。

示例

编译并运行

输出

101  John  995000
102  Michael  29700

对象作为函数参数

如果我们需要在 C++ 中将对象传递给函数,我们可以像传递任何其他原始数据一样传递对象。我们只需要在函数的参数中定义对象并调用函数。

语法

它具有以下语法:

在此语法中,function_name 指的是函数的名称,object_name 指的是对象的名称。

对象作为函数参数的示例

让我们看一个示例来说明如何在 C++ 中将对象用作函数参数。

示例

编译并运行

输出

Employee Name: John, Employee ID: 101
Inside Function: 
Employee Name: John
Employee ID: 101

说明

在此示例中,我们定义了一个 Employee 类,该类包含两个数据成员:emp_name 和 emp_id。我们还使用成员函数 setDetails() 来赋值。

在 main() 函数中,创建了一个对象 emp1,并用员工姓名和 ID 初始化。之后,将对象传递给一个外部函数 showEmployee(),该函数以 employee 对象作为参数并打印其详细信息。

C++ 中类和对象的 Tnt差别

类和对象之间的几个主要区别如下

特点对象
定义它是创建对象的蓝图。它是具有实际值的类的实例。
实体在类中,概念实体描述结构和行为。它是从类创建的现实世界实体。
语法class Class_Name;class_Name obj;
用途它主要用于概念和模型。它主要用于现实世界的实体,如数据和功能。
表示它代表一个通用概念或类型。它代表类的特定实例。
内存分配在 C++ 类中,在创建对象之前不会分配内存。如果程序中创建了对象,则会创建该对象。

结论

总而言之,类和对象是 C++ 中面向对象编程 (OOPs) 的主要概念。类是一种用户定义函数,它充当创建对象的蓝图。另一方面,对象是类的实例,包含实际值。这些概念有助于模拟现实世界的实体,增强代码可重用性,并改进程序组织和可维护性。

C++ 类和对象选择题

1. C++ 中的类是什么?

  1. 函数的集合
  2. 创建对象的蓝图
  3. 定义数据数组的方法
  4. C++ 中的保留关键字
 

答案:b) 创建对象的蓝图


2. C++ 中的对象是什么?

  1. 类的实例
  2. 数据操作方法
  3. 类中的函数
  4. 基本数据类型的变量
 

答案:a) 类的实例


3. 如何从类外部访问公共成员?

  1. 使用箭头 (->) 运算符
  2. 使用作用域解析运算符
  3. 使用点 (.) 运算符
  4. 仅使用函数
 

答案:c) 使用点 (.) 运算符


4. C++ 中类的成员的正确默认访问说明符是什么?

  1. Protected
  2. 公共
  3. 全球
  4. 私有
 

答案:d) Private


5. 下列哪个关键字用于在 C++ 中定义类?

  1. new
  2. class
  3. object
  4. define
 

答案:b) class