C++ 类 & 对象
C++ 是一种面向对象的编程语言,它支持类(Class)和对象(Object)的概念。类是创建对象的蓝图或模板,而对象是类的实例。在 C++ 中,类和对象是面向对象编程(OOP)的基础。
类的定义
类是定义了一组属性(称为成员变量)和操作这些属性的方法(称为成员函数)的集合。类定义以关键字 class
开始,后跟类名和类体,类体被大括号括起来。类定义通常包括私有(private
)和公有(public
)部分,其中私有部分包含类的内部实现细节,而公有部分包含类的接口,即外部可以访问的成员。
class ClassName {
private:
// 私有成员变量和函数
public:
// 公有成员变量和函数
};
对象的创建
对象是类的实例。要创建对象,需要使用类名,后跟对象名和可选的初始化列表。对象创建时会调用类的构造函数。
ClassName objName;
构造函数和析构函数
构造函数是一种特殊的成员函数,用于初始化新创建的对象。析构函数用于在对象销毁时执行清理工作。构造函数的名称与类名相同,而析构函数的名称是在类名前加上波浪号(~
)。
class ClassName {
public:
ClassName() { // 构造函数
// 初始化代码
}
~ClassName() { // 析构函数
// 清理代码
}
};
访问控制和封装
C++ 支持三种访问控制级别:公有(public
)、保护(protected
)和私有(private
)。
- 公有成员可以在类的内部和外部访问。
- 保护成员可以在类的内部和派生类中访问。
- 私有成员只能在类的内部访问。
封装是指隐藏类的内部实现细节,只暴露必要的接口给外部。这可以通过将成员变量设置为私有或保护,并提供公有的成员函数来实现。
继承
继承是 OOP 的一个重要特性,它允许创建一个新类(称为派生类)来继承另一个类(称为基类)的属性和方法。派生类可以添加新的成员或重写基类的方法。
class BaseClass {
// 基类定义
};
class DerivedClass : public BaseClass {
// 派生类定义
};
多态
多态允许使用一个接口来表示不同的数据类型。在 C++ 中,多态通常通过虚函数实现,这使得派生类可以重写基类的方法,并在运行时根据对象的实际类型调用相应的方法。
class BaseClass {
public:
virtual void display() {
cout << "Base class display" << endl;
}
};
class DerivedClass : public BaseClass {
public:
void display() override {
cout << "Derived class display" << endl;
}
};
总结
C++ 中的类和对象是面向对象编程的核心概念。通过类,我们可以定义对象的属性和行为,并通过创建对象来实例化这些定义。C++ 的面向对象特性,如封装、继承和多态,使得代码更加模块化、可重用和易于维护。