C++ OOP 概念

面向对象编程(通常称为 OOP)是一种通过使用对象将问题分解为更小问题来解决复杂问题的方法。在面向对象编程之前,程序是用过程语言编写的,它们只是一长串指令。另一方面,OOP 就是创建可以交互的对象,这使得在 OOP 中开发程序变得更容易,因为我们可以理解它们之间的关系。

面向对象编程(OOP)

在面向对象编程中,我们使用类和对象编写程序,利用 OOP 的特征,如抽象封装继承多态

类和对象

类就像数据成员和函数的蓝图,对象是类的实例。例如,假设我们有一个类 Car ,它有数据成员(变量),如speedweightprice,和函数,如gearChange()slowDown()brake()等。现在让我们说我创建了一个名为FordFigo的类的对象,它使用这些数据成员和函数,并为它们提供自己的值。同样,我们可以使用蓝图(类)创建任意数量的对象。

//Class name is Car
class Car
{
    //Data members
    char name[20];
    int speed;
    int weight;

public:
    //Functions
    void brake(){
    }
    void slowDown(){
    }
};

int main()
{
   //ford is an object
   Car ford; 
}

抽象

抽象是隐藏用户不相关细节的过程。例如,当您发送短信时,您只需键入消息,选择联系人并单击发送,手机会显示消息已发送,单击发送时背景中实际发生的情况对您是隐藏的,因为它对你不相关。

封装

封装是将数据和函数组合成像胶囊这样的单个单元的过程。这是为了避免从类外部访问私有数据成员。为了实现封装,我们将类的所有数据成员设为私有并创建公共函数,使用它们我们可以从这些数据成员获取值或为这些数据成员设置值。

继承

继承是一个特性,子类的对象使用该特性获取父类的属性。

#include <iostream>
using namespace std;
class ParentClass {
  //data member
  public:
    int var1 =100;
};
class ChildClass: public ParentClass {
  public:
  int var2 = 500;
};
int main(void) {
  ChildClass obj;
}

现在这个对象obj可以使用ParentClass的属性(例如变量var1)。

多态

函数重载和运算符重载是多态的例子。多态是一种在不同情况下对象表现不同的特性。

在函数重载中,我们可以有多个函数,具有相同名称但不同数量,类型或顺序的参数。

多态实例

#include <iostream>
using namespace std;
class Sum {
  public:
    int add(int num1,int num2){
      return num1 + num2;
    }
    int add(int num1, int num2, int num3){
      return num1 + num2 + num3;
    }
};
int main(void) {
   //Object of class Sum
   Sum obj;

   //This will call the second add function
   cout<<obj.add(10, 20, 30)<<endl;

   //This will call the first add function
   cout<<obj.add(11, 22);
   return 0;
}

输出:

60
33
赞(0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址