关于C++虚函数和纯虚函数

来源:互联网 发布:wex5仿微店源码下载 编辑:程序博客网 时间:2024/06/05 17:32

直接上代码

  • 第一种情况:
#include <iostream>using namespace std;class CPureVirtual{public:    virtual void func() = 0;};class CVirtual : public CPureVirtual{public:    void func()    {        cout<<"CVirtual::func()"<<endl;    }};class CInstance : public CVirtual{public:    void func()    {        cout<<"CInstance::func()"<<endl;    }};int main(){    CInstance in;    CVirtual *pVirt = &in;    pVirt->func();    return 0;}

输出

输出:CInstance::func()
  • 第二种情况:
#include <iostream>using namespace std;class CPureVirtual{public:    virtual void func() = 0;};class CVirtual/* : public CPureVirtual*/{public:    void func()    {        cout<<"CVirtual::func()"<<endl;    }};class CInstance : public CVirtual{public:    void func()    {        cout<<"CInstance::func()"<<endl;    }};int main(){    CInstance in;    CVirtual *pVirt = &in;    pVirt->func();    return 0;}
输出:CVirtual::func()
  • 第三种情况:
#include <iostream>using namespace std;class CPureVirtual{public:    virtual void func() = 0;};class CVirtual/* : public CPureVirtual*/{public:    virtual void func()    {        cout<<"CVirtual::func()"<<endl;    }};class CInstance : public CVirtual{public:    void func()    {        cout<<"CInstance::func()"<<endl;    }};int main(){    CInstance in;    CVirtual *pVirt = &in;    pVirt->func();    return 0;}
输出:CInstance::func()

好吧,从代码和输出结果已经看出不同了,自己体会吧。

0 0
原创粉丝点击