blob: 46b68e529e6a52850790d34bcc0dc00687f6ae85 [file] [log] [blame]
#include <cstdio>
#include <cstdlib>
struct A
{
int m_data;
A() {m_data = 0;}
virtual int deallocate (void)
{
return 42;
}
};
struct B: public A
{
int *ptr;
int m_data_b;
B() {m_data_b = 0;}
void allocate ()
{
ptr = (int*)malloc(sizeof(int));
}
int deallocate (void)
{
free(ptr);
return 0;
}
};
void foo(A *a_ptr)
{
printf("%d\n",a_ptr->deallocate());
}
void test()
{
B b;
A a, *aptr;
aptr = &b;
b.allocate();
foo(aptr);
aptr = &a;
foo(aptr);
}