C与C++的区别-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

C与C++的区别

a123456678 2016-06-08 21:07:42 1510
C是面向过程,C++是面向对象。
C++里有函数重载,C中没有函数重载。
C++是面向对象的,有重载 继承 多态三种特性

然后面试官问我多态的用处,坦率的讲我所理解的多态如下:

class animal
{
    virtual void speak();
    
}
class dog:public animal
{
    void speak()
    {
        cout<<"旺旺"<<endl;
    }
}
我所理解的多态就是
dog d;
animal *ptr=&d;
ptr->speak()//这个时候输出旺旺

面试时我说多态是比如基类指针指向子类对象,调用基类virtual函数时实际调用子类覆盖的虚函数。
然后面试官问,有没有一种情况下,没有多态的话你就实现不了某种功能的情况呢?
坦率的讲,对于多态我真的只有上面的一点肤浅的理解,我先搜搜相关内容,欢迎各位在此讨论,问题已加粗。

云服务器登录 云服务器设置
分享到
取消 提交回答
全部回答(1)
  • a123456678
    2019-07-17 19:32:45

    面向对象三个基本特征:封装,继承,多态。
    多态性相对于前二者而言是最灵活的,也是面向对象比较核心的部分。
    但针对面试官的问题:没有多态就不能实现某种功能的情况,答案是否定的。
    很多重要的系统及应用,考虑到性能及开发流程,使用机构化语言(C)的更多。
    只能说,使用了多态,能让某些功能的实现看起来更“优雅”。
    当年C++的作者劝说UNIX的作者用C++编写系统时,后者只是微笑沉默拒绝。这其中有自己的哲学。

    0 0
人工智能
使用钉钉扫一扫加入圈子
+ 订阅

了解行业+人工智能最先进的技术和实践,参与行业+人工智能实践项目

相似问题
最新问题
推荐课程