AKever

导航

C++(1) virtual 函数

Virtual是C++ OO机制中多太很重要的一个关键。以个人理解,virtual 声明基类函数后,基类函数指针会搜寻并指向函数指针,从而达到子类函数覆盖基类函数的目的。

test文件

Father.h/cpp

Child.h/cpp

main.cpp

贴贴贴:

Father.h

#ifndef __FATHER_H__
#define __FATHER_H__

#include <iostream>
using namespace std;

class Father
{
public:
    Father(void);
    ~Father(void);

    void take();
    virtual void eat();
};

#endif

Father.cpp

#include "StdAfx.h"
#include "Father.h"

Father::Father(void)
{
}

Father::~Father(void)
{
}

void Father::take()
{
    eat();
}
void Father::eat() 
{
    cout << "father eating!!";
}

Child.h

#ifndef __CHILD_H__
#define __CHILD_H__

#include "Father.h"

class Child : public Father
{
public:
    Child(void);
    ~Child(void);

    void eat();
};

#endif

Child.cpp

#include "StdAfx.h"
#include "Child.h"

#include <iostream>
using namespace std;

Child::Child(void)
{
}

Child::~Child(void)
{
}

void Child::eat()
{
    cout << "child is eating!!";
}

main.cpp

#include"stdafx.h"
#include<iostream>

#include "Father.h"
#include "Child.h"

using namespace std;

int main() 
{
    Father* father = new Father();
    Child* child = new Child();

    father->take();
    cout << endl << "-------------" <<endl;
    child->take();
    cout << endl << "hello world!!!";
}

main函数输入如下:

father eating!!
-------------
child is eating!!
hello world!!!

virtual!!!

 

posted on 2014-01-15 21:04  AKever  阅读(447)  评论(0)    收藏  举报