使用 C++ 的面向对象编程基本概念
面向对象编程是一种使用对象和类进行工作的编程类型。面向对象编程基于现实世界的实体,如继承、多态性、数据隐藏等。其目标是将数据和操作这些数据的函数绑定到单个实体中,以限制其使用。
面向对象编程的一些基本概念包括:
- 类
- 对象
- 封装
- 多态性
- 继承
- 抽象
类 − 类是一种具有自身成员(即数据成员和成员函数)的数据类型。它是面向对象编程语言中对象的蓝图。它是 C++ 中面向对象编程的基本构建块。类的成员是通过创建类的实例在编程语言中访问的。
类的一些重要属性:
类是用户定义的数据类型。
类包含数据成员和成员函数等成员。
数据成员是类的变量。
成员函数是用于操作数据成员的方法。
数据成员定义类的属性,而成员函数定义类的行为。
一个类可以有多个对象,这些对象具有共同的属性和行为。
语法
class class_name { data_type data_name; return_type method_name(parameters); }
对象 − 对象是类的实例。它是一个具有在面向对象编程中使用的特性和行为的实体。对象是用来分配内存的实体。定义的类本身不具有内存块,只有在创建对象时才会分配内存。
语法
class_name object_name;
示例
#include<iostream> using namespace std; class calculator { int number1; int number2; char symbol; public : void add() { cout<<"The sum is "<<number1 + number2 ; } void subtract() { cout<<"The subtraction is "<<number1 - number2 ; } void multiply() { cout<<"The multiplication is "<<number1 * number2 ; } void divide() { cout<<"The division is "<<number1 / number2 ; } calculator (int a , int b , char sym) { number1 = a; number2 = b; symbol = sym; switch(symbol){ case '+' : add(); break; case '-' : add(); break; case '*' : add(); break; case '/' : add(); break; default : cout<<"Wrong operator"; } } }; int main() { calculator c1(12 , 34 , '+'); }
输出
The sum is 46
在面向对象编程中,封装是将数据和信息包装到单个单元中的概念。封装的正式定义是:封装是将数据及其可以操作数据的相关函数绑定在一起。
让我们用一个简单的现实生活例子来理解这个概念:
在我们的大学里,我们有各个课程的系,例如计算机科学系、信息技术系、电子工程系等。每个系都有自己的学生和课程,这些学生和课程会被记录和教授。让我们把每个系想象成一个类,它封装了该系学生的信息和要教授的课程。此外,每个系还有一些固定的规则和准则供该课程的学生遵循,例如时间安排、学习方法等。这就是现实生活中的封装,有数据,也有操作数据的方法。
由于面向对象编程中的封装概念,另一个非常重要的概念是可能的,那就是数据抽象或数据隐藏。这是因为封装隐藏了数据,只显示需要显示的信息。
多态性 顾名思义,多态性意味着多种形式。多态性是面向对象编程能够使用多种形式完成某些工作的能力。方法的行为取决于调用方法的类型或情况。
让我们举一个现实生活的例子,一个人可以根据情况有多种行为。例如,一个女人可以是母亲、经理和女儿。这决定了她的行为。这就是多态性概念的来源。
在C++编程语言中,多态性可以通过两种方式实现。它们是运算符重载和函数重载。
运算符重载 在运算符重载中,运算符在不同的使用实例中可以有多种行为。
函数重载 具有相同名称的函数,可以根据某些条件执行多种类型的工作。
继承 它是类继承或派生其他类属性或特性的能力。继承在面向对象程序中非常重要,因为它允许重用,即通过继承使用在另一个类中定义的方法。从其他类派生属性的类称为子类或派生类,而继承属性的类称为基类或父类。
C++编程语言支持以下类型的继承:
- 单继承
- 多继承
- 多层继承
- 层次继承
- 混合继承
抽象 数据抽象或数据隐藏是隐藏数据并仅向最终用户显示相关数据的概念。它也是面向对象编程的重要组成部分。
让我们举一个现实生活的例子来更好地理解这个概念:当我们骑自行车时,我们只知道按下刹车会停下来,转动油门会加速,但我们不知道它是如何工作的,我们也不需要知道,这就是数据抽象的概念。
在 C++ 编程语言中,我们可以通过两种方式实现数据抽象:
- 使用类
- 使用头文件