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++编程语言中,有两种方式可以实现数据抽象:
- 使用类(class)
- 使用头文件(header file)