initial check in

This commit is contained in:
2012-12-06 21:43:03 +04:00
commit 4bc273824d
179 changed files with 29415 additions and 0 deletions

46
dyn_cast.cpp Normal file
View File

@@ -0,0 +1,46 @@
#include <stdio.h>
class A
{
public: virtual void* getThis()
{ return this; }
};
class B : virtual public A
{
public: virtual void* getThis()
{ return this; }
public: virtual void printB()
{ puts("B"); }
};
class C : virtual public A
{
public: virtual void* getThis()
{ return this; }
public: virtual void printC()
{ puts("C"); }
};
class D : public B,
public C
{
public: virtual void* getThis()
{ return this; }
};
int main ()
{
D o;
B* pB = reinterpret_cast<B*>( o.getThis() );
C* pC = reinterpret_cast<C*>( o.getThis() );
pB->printB();
pC->printC();
return 0;
}