您的位置:首页 > 编程语言 > C语言/C++

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

2015-07-31 23:51 501 查看
直接上代码

第一种情况:

[code]#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 = ∈
    pVirt->func();
    return 0;
}


输出

[code]输出:
CInstance::func()


第二种情况:

[code]#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 = ∈
    pVirt->func();
    return 0;
}


[code]输出:
CVirtual::func()


第三种情况:

[code]#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 = ∈
    pVirt->func();
    return 0;
}


[code]输出:
CInstance::func()


好吧,从代码和输出结果已经看出不同了,自己体会吧。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: