13,825
社区成员
发帖
与我相关
我的任务
分享
#include<iostream>
using namespace std;
class A
{
public:
virtual void print(){cout<<"This is A."<<endl;}
};
class B : public A
{
public:
B(){data=2;}
virtual void printB(){cout<<"This is B."<<endl;}
int data;
};
int main()
{
A a;
A b;
A* c = new A();
B d;
B e;
A* f=new B();
B* g=new B();
return 0;
}
29 return 0;
(gdb) print a
$1 = {_vptr.A = 0x400bc0}
(gdb) print b
$2 = {_vptr.A = 0x400bc0}
(gdb) print *c
$3 = {_vptr.A = 0x400bc0}
(gdb) print d
$4 = {<A> = {_vptr.A = 0x400c10}, data = 2}
(gdb) print e
$5 = {<A> = {_vptr.A = 0x400c10}, data = 2}
(gdb) print *f
$6 = {_vptr.A = 0x400c10}
(gdb) print *g
$7 = {<A> = {_vptr.A = 0x400c10}, data = 2}
(gdb) quit
A debugging session is active.