C++ 基类调用派生类非虚函数
2011-03-13 18:09
253 查看
#include <iostream> #include <string> using namespace std; class CAnimal { public: CAnimal(){cout<< "animal constructor" <<endl;} virtual ~CAnimal(){cout<< "animal destructor" <<endl;} virtual void speek() const{cout<< "animal speek" <<endl;} }; class CDog:public CAnimal { public: CDog(){ cout<< "dog constructor" <<endl;} virtual ~CDog(){cout<< "dog destructor" <<endl;} virtual void speek() const {cout<< "dog speek" <<endl;} void move() const {cout<< "dog move one step" <<endl;} }; class CCat:public CAnimal { public: CCat(){ cout<< "cat constructor" <<endl;} virtual ~CCat(){cout<< "cat destructor" <<endl;} virtual void speek() const {cout<< "cat speek" <<endl;} void run() const {cout<< "cat run one step" <<endl;} }; int main() { CAnimal *pBase = new CDog; static_cast<CDog*>(pBase)->move(); delete pBase; CAnimal *pBase2 = new CCat; static_cast<CCat*>(pBase2)->run(); delete pBase2; return 0; }
相关文章推荐
- C++ 虚函数在基类与派生类对象间的表现及其分析
- C++继承类和基类之间成员函数和虚函数调用机制
- C++ 基类和派生类之间构造函数的调用
- C++:派生类的默认构造函数和拷贝构造函数调用基类构造函数的机制(含程序验证)
- C++中使用基类指针调用派生类中定义的方法
- 关于如何在派生类的虚函数中调用被覆盖掉的同名基类的虚函数
- C++中通过派生类调用第二基类的普通成员函数时this指针的调整
- C++基类调用派生类的方法
- C++ 虚函数 派生类的调用
- C++ 虚函数在基类与派生类对象间的表现及其分析
- C++基类、派生类构造函数调用顺序
- C++派生类与基类构造函数调用次序
- 关于如何在派生类的虚函数中调用被覆盖掉的同名基类的虚函数
- C++基类与派生类的函数调用情况
- C++继承类和基类之间成员函数和虚函数调用机制
- C++继承类和基类之间成员函数和虚函数调用机制
- [疑问]C/C++中为什么在类外利用多态基类指向派生类指针可以调用类的私有成员函数?
- C++基类与派生类的函数调用情况
- C++派生类函数调用基类的函数
- C++如何在派生类成员函数内调用基类的成员函数(包括构造函数)