CPP的类和对象
在C++中,类和对象是面向对象编程(OOP)的两个核心概念。类是对象的抽象描述,它定义了一组具有相同属性和行为的对象的模板。对象则是根据类创建的具体实例,它拥有类中定义的属性和方法。
类(Class)
类是一种用户自定义的数据类型,它封装了数据(成员变量或属性)和操作这些数据的方法(成员函数或行为)。类定义了对象的结构,包括对象可以包含的数据类型以及可以对这些数据执行的操作。
类的声明通常使用class关键字,后面跟着类名和一个花括号包围的类体。类体中包含类的成员变量(数据成员)和成员函数(方法)。
cpp复制代码
|
class MyClass { |
|
public: |
|
int myVariable; // 数据成员(属性) |
|
|
|
// 成员函数(行为) |
|
void myFunction() { |
|
// 函数体 |
|
} |
|
}; |
在这个例子中,MyClass是一个类,它有一个公共数据成员myVariable和一个公共成员函数myFunction。public关键字表示这些成员是公开的,可以在类的外部访问。
对象(Object)
对象是类的实例。通过类,我们可以创建多个具有相同属性和方法的对象。每个对象都是独立的,并拥有自己的存储空间来存储属性值。
创建对象通常使用类名,后跟一个或多个对象名,并使用对象初始化列表(如果有的话)。
cpp复制代码
|
MyClass obj1; // 创建一个MyClass类的对象obj1 |
|
MyClass obj2; // 创建另一个MyClass类的对象obj2 |
现在,obj1和obj2都是MyClass的实例,它们都有myVariable这个属性以及myFunction这个方法。但是,它们各自的myVariable可以有不同的值,因为每个对象都有自己的存储空间。
访问对象的属性和方法
通过对象,我们可以访问其属性和调用其方法。如果属性和方法是公开的(使用public关键字声明),则可以直接通过对象访问它们。
cpp复制代码
|
obj1.myVariable = 10; // 设置obj1的myVariable属性值为10 |
|
obj1.myFunction(); // 调用obj1的myFunction方法 |
如果属性和方法是私有的(使用private关键字声明),则不能从类的外部直接访问它们,而需要通过类的公有成员函数来访问或修改。这提供了一种封装机制,隐藏了类的内部实现细节,只暴露必要的接口给类的使用者。
构造函数和析构函数
类还可以包含特殊类型的成员函数,称为构造函数和析构函数。构造函数用于初始化对象,而析构函数用于在对象销毁前执行清理操作。
cpp复制代码
|
class MyClass { |
|
public: |
|
MyClass() { // 构造函数 |
|
// 初始化代码 |
|
} |
|
|
|
~MyClass() { // 析构函数 |
|
// 清理代码 |
|
} |
|
|
|
// ... 其他成员 ... |
|
}; |
当创建MyClass的对象时,构造函数会被自动调用。当对象的生命周期结束时(例如,对象离开其作用域或被删除时),析构函数会被自动调用。
类和对象是C++面向对象编程的基础,它们允许我们创建复杂且可维护的代码结构,通过封装、继承和多态等特性来实现更高级的功能。