c++求运行结果,麻烦帮我解析一下这个问题

#include
using namespace std;
class C
{ public:
virtual string toString( ) { return "C"; } virtual int toInt() { return 100; }
void print() { cout << "Class C" << endl; }
};
class B: public C
{ public:
string toString( ) { return "B"; }
void print( ) { cout << "Class B" << endl; }
};
class A: public B
{ public:
string toString( ) { return "A"; } int toInt() { return 300; }
};
void displayObject(C* p) { cout << p->toString() << '\t' << p->toInt()
<< '\t' ; p->print(); }
int main()
{ A a; B b; C c;
displayObject(&a); displayObject(&b); displayObject(&c); a.print(); b.print(); c.print();
return 0;
}

A   300 Class C
B   100 Class C
C   100 Class C
Class B
Class B
Class C

问题解决的话,请点下采纳。