关于多态代码和运行结果
#include <iostream>
#pragma hdrstop
using std::cout;
using std::endl;
//---------------------------------------------------------------------------
#pragma argsused
//---------------------------------------------------------------------------
class Base {
public:
Base() { };
virtual void DisplayMessage() {
cout << "Displaying Message from an object of Base class" << endl;
};
};
//---------------------------------------------------------------------------
class DerivedFirst : public Base {
public:
DerivedFirst() { };
void DisplayMessage() {
cout << "Displaying Message from an object of DerivedFirst class" << endl;
}
};
//---------------------------------------------------------------------------
class DerivedSecond : public Base {
public:
DerivedSecond() { };
void DisplayMessage() {
cout << "Displaying Message from an object of DerivedSecond class" << endl;
}
};
//---------------------------------------------------------------------------
class DerivedThird : public Base {
public:
DerivedThird() { };
};
//---------------------------------------------------------------------------
int main()
{
// create a base class object
Base* bc = new Base();
bc->DisplayMessage();
// delete the base class object and assign it to DerivedFirst object
delete bc;
bc = new DerivedFirst();
bc->DisplayMessage();
// delete the base class object and assign it to DerivedSecond object
delete bc;
bc = new DerivedSecond();
bc->DisplayMessage();
// delete the base class object and assign it to DerivedThird object
delete bc;
bc = new DerivedThird();
bc->DisplayMessage();
delete bc;
return EXIT_SUCCESS;
}
//---------------------------------------------------------------------------

虚函数主要作用:用基类声明的指针(Base* bc),指向派生类,如果派生类中有与基类中相同的方面就调用子类的方法,如果子类没有该方面,就调用基类自身的方法。
基类中如果不加virtual 关键字,用用基类声明的指针,调用函数时只能调用基类自身的函数。
本文章转载请务必注明出处或保存此段。c++/lua/windows逆向交流群:69148232

浙公网安备 33010602011771号