一.面向对象的三大特性在C++是怎样的

三大特性

在 C++ 中,面向对象编程的三大特性是封装(Encapsulation)、继承(Inheritance)和多态(Polymorphism)。

  1. 封装(Encapsulation):

    • 封装是面向对象编程的基本特性之一,它将数据(属性)和行为(方法)封装在一个类中,并对外部隐藏对象的内部实现细节。
    • 通过封装,可以实现数据的隐藏和保护,只允许通过公共接口(public methods)来访问和修改对象的状态,从而提高代码的安全性和可维护性。
    • 封装还可以实现信息隐藏,使得对象内部的实现细节对外部用户透明,用户只需要关心对象提供的接口而不需要了解具体实现。
  2. 继承(Inheritance):

    • 继承是一种对象间的关系,它允许一个类(子类/派生类)继承另一个类(父类/基类)的属性和方法,从而可以重用已有类的代码并扩展其功能。
    • 通过继承,子类可以访问父类的非私有成员,并可以在子类中添加新的成员或重写父类的方法,实现代码的复用和扩展。
    • 继承还可以建立类之间的层次关系,使得代码结构更加清晰和易于管理。
  3. 多态(Polymorphism):

    • 多态是指同一操作作用于不同的对象上时,可以产生不同的行为。它分为编译时多态(静态多态,如函数重载、模板)和运行时多态(动态多态,如虚函数)。
    • 运行时多态通过虚函数和动态绑定实现,允许将父类指针或引用指向子类对象,在运行时根据对象的实际类型调用相应的方法,实现动态绑定和多态行为。
    • 多态性提高了代码的灵活性和可扩展性,使得代码更具通用性和可复用性。

这三大特性共同构成了面向对象编程的基础,通过它们可以实现代码的模块化、复用性和可维护性,提高程序的可读性和可靠性。在 C++ 中,这些特性可以帮助开发者更好地组织和设计代码,从而更高效地实现复杂的软件系统。

C++多态

Base* ba = new Son();//父类指针指向子类

1.1多态必须满足两个条件:

  • 必须父类指针或者引用调用虚函数
  • 被调用的函数是虚函数,且必须完成对基类的重写

如果满足虚函数,编译器会调用指针指向对象的虚函数,和指针类型无关,;如果不满足多态,编译器会根据指针类型调用虚函数

1.2虚函数:virtual,虚函数只能在类内定义只能是类内的非静态成员函数

virtual void fun() {}//error! 在类外面的函数不能是虚函数

1.3虚函数的重写:子类、父类拥有相同的函数名、参数、返回值,

class Person

{

  public:

   virtual void fun()

   {

      cout << "Person->fun()" << endl;

   }

};

class Student

{

   public:

   //子类重写的虚函数可以不加virtual,因为子类继承了父类的虚函数,

   //编译器会认为你是想要重写虚函数。

   //void fun() 可以直接这样,也对,但不推荐。           

   virtual void fun()//子类重写父类虚函数

   {

     cout << "Student->fun()" << endl;

   }

};

  • 8
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值