开发者社区> 问答> 正文

C与C++的区别

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

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

    2019-07-17 19:32:45
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
使用C++11开发PHP7扩展 立即下载
GPON Class C++ SFP O;T Transce 立即下载
GPON Class C++ SFP OLT Transce 立即下载

相关实验场景

更多