C++ 类 & 对象
在C++编程中,类和对象是两个核心概念。了解这两个概念对于掌握C++编程至关重要。在这篇文章中,我们将详细讨论类和对象的概念、特点、应用场景以及如何创建和使用它们。
一、类和对象的概念
1. 类(Class)
类是一种用户自定义的数据类型,它包含了一组相关的数据成员(属性)和成员函数(方法)。类是面向对象编程(OOP)的基本构建块之一,它允许我们模拟现实世界中的对象。类定义了一个模板,用于创建具有相同属性和方法的对象。
2. 对象(Object)
对象是类的实例,它是现实世界中某一具体事物的抽象表示。对象具有类定义的属性(数据成员)和行为(成员函数)。通过对象,我们可以访问和操作类中的数据和函数,实现对现实世界中某一具体事物的模拟。
二、类和对象的特点
1. 数据封装
类和对象具有数据封装的特点,即将数据和操作数据的方法包装在一起。这有助于提高代码的可维护性和安全性。封装可以通过私有成员、公有成员和保护成员来实现。
2. 继承性
类和对象具有继承性特点,允许我们创建新类时继承现有类的属性和方法。这有助于减少代码重复,提高代码复用性。继承关系可以表示为“父类(Base Class)→ 子类(Derived Class)”。
3. 多态性
类和对象具有多态性特点,允许我们使用同一接口处理不同类型的对象。多态性可以通过虚函数实现,虚函数表(VTable)用于存储基类和派生类对应的虚函数地址。
4. 模板化
C++模板允许我们编写与数据类型无关的代码,这有助于提高代码的通用性和可重用性。模板可用于定义类、函数和容器等。
三、类和对象的创建与使用
1. 创建类
创建类时,需要指定类名、数据成员和成员函数。以下是一个简单的示例:
class Person {public: // 数据成员 string name; int age; // 成员函数 void introduce() { cout << "我的名字是 " << name << ",我 " << age << " 岁了。" << endl; }};
2. 创建对象
创建对象时,需要使用类名和括号。对象名可以访问类中的数据成员和成员函数。以下是一个创建Person对象并调用introduce()函数的示例:
int main() { // 创建 Person 对象 Person person1; // 设置对象数据成员 person1.name = "张三"; person1.age = 25; // 调用对象成员函数 person1.introduce(); return 0;}
3. 访问对象成员
使用点运算符(.)或箭头运算符(->)可以访问对象的成员。以下是一个访问Person对象数据的示例:
int main() { // 创建 Person 对象 Person person1; // 设置对象数据成员 person1.name = "张三"; person1.age = 25; // 访问对象数据成员 cout << "姓名:" << person1.name << endl; cout << "年龄:" << person1.age << endl; return 0;}
4. 类的方法
类中的成员函数可以表示为一个对象的行为。在C++中,方法可以直接访问对象的私有数据成员。以下是一个示例,演示如何使用方法修改对象的姓名和年龄:
class Person {public: // 数据成员 string name; int age; // 成员函数 void setName(string newName) { name = newName; } void setAge(int newAge) { age = newAge; } void introduce() { cout << "我的名字是 " << name << ",我 " << age << " 岁了。" << endl; }};int main() { // 创建 Person 对象 Person person1; // 调用方法设置对象数据成员 person1.setName("李四"); person1.setAge(3