C++三大特性

1.C++的三大特性为:继承,多态,封装

  (1)继承。一个对象直接使用另一个对象的属性和方法。
优点:1.减少重复的代码。
   2.继承是多态的前提。
   3.继承增加了类的耦合性。
缺点:1.继承在编译时刻就定义了,无法在运行时刻改变父类继承的实现;
   2.父类通常至少定义了子类的部分行为,父类的改变都可能影响子类的行为;
   3.如果继承下来的子类不适合解决新问题,父类必须重写或替换,那么这种依赖关系就限制了灵活性,最终限制了复用性。

虚继承:为了解决多重继承中的二义性问题,它维护了一张虚基类表。
    (2)多态。
C++中有两种多态,称为 动多态(运行期多态) 静多态(编译期多态) ,而 静多态主要通过模板来实现,宏也是实现静多态的一种途径 动多态在C++中是通过虚函数实现的 ,即在基类中存在一些接口(一般为纯虚函数),子类必须重载这些接口。这样通过使用基类的指针或者引用指向子类的对象,就可以实现调用子类对应的函数的功能。动多态的函数调用机制是执行期才能进行确定,所以它是动态的。
接口的多种不同实现方式即为多态。可以举个例子加深记忆,比如电脑的USB接口,既可以插优盘,又可以插鼠标,USB接口就类似类的接口。
优点:1.大大提高了代码的可复用性;
   2.提高了了代码的可维护性,可扩充性;
        缺点: 1)易读性比较不好,调试比较困难
                    2)模板只能定义在.h文件中,当工程大了之后,编译时间十分的变态
      
  (3)封装。隐藏对象的属性和实现细节,仅仅对外提供接口和方法。
优点: 1)隔离变化;2)便于使用; 3)提高重用性; 4)提高安全性
缺点: 1)如果封装太多,影响效率; 2)使用者不能知道代码具体实现。

重载(overload)和覆盖(override):
重载:写一个与已有函数同名但是参数表不同的函数;
覆盖:虚函数总是在派生类中被改写。


      
面试中与C++三大特性相关的问题通常指的是封装、继承多态。封装是将数据和操作封装在一个类中,通过访问权限控制来保护数据,实现了数据的隐藏和封装。继承是一种面向对象编程的关键特性,允许一个类继承另一个类的属性和方法。多态是指同一操作作用于不同的对象,可以有不同的行为。下面我将分别讨论这三个特性。 封装是C++的一个重要特性,它通过将数据和操作封装在一个类中,提供了数据的隐藏和封装。通过访问权限控制,我们可以将一些私有数据隐藏起来,只允许通过类的公有接口进行访问。这样可以保护数据的完整性和安全性,同时也提供了更好的代码组织和维护。 继承C++中的另一个重要特性,它允许一个类继承另一个类的属性和方法。通过继承,派生类可以获得基类的成员变量和成员函数,并且可以通过重写和扩展基类的方法来实现自己的功能。继承提供了代码复用和层次化设计的能力,同时也允许多态的实现。 多态C++面向对象编程中的一个关键特性,它可以让同一个操作作用于不同的对象,产生不同的行为。多态通过虚函数实现,通过将函数声明为虚函数,派生类可以重写基类的方法,并通过基类的指针或引用调用派生类的方法。这样就可以根据对象的实际类型来决定调用哪个方法,实现了运行时的动态绑定。 综上所述,封装、继承多态C++面向对象编程中的三大特性。封装提供了数据的隐藏和封装,继承提供了代码复用和层次化设计的能力,多态实现了同一操作作用于不同对象的不同行为。这些特性在C++中广泛应用,是面试中常见的考点。<span class="em">1</span><span class="em">2</span><span class="em">3</span><span class="em">4</span>
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值