在只有基类对象的时候,虚函数的作用就显现了。
class A
{
public:
A() {}
~A(){}
virtual void foo() { cout << "foo of class A be invoke" << endl; };
};
class B : public A
{
public:
B(){}
~B(){}
void foo() {cout << "foo of class B be invoke" << endl; }
};
int main(array<System::String ^> ^args)
{
A* a = new B();
a->foo();
system("pause");
return 0;
}
这个时候输出的是foo of class B be invoke。如果把类A中得virtual去掉,输出的就是foo of class A be invoke