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!!!
 
                     
                    
                 
                    
                 
 
         
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号