64,281
社区成员
发帖
与我相关
我的任务
分享
#include <iostream>
using namespace std;
class A
{
public:
int a;
};
class B
{
int b;
};
class C:public A, public B
{
int c;
};
int main()
{
C cIns;
C* p2 = &cIns;
B* p1 = NULL;
p1 = static_cast<B*>(p2);
cout << p1 << ' ' << p2 << endl;
p1 = dynamic_cast<B*>(p2);
cout << p1 << ' ' << p2 << endl;
system("pause");
return 0;
}
#include<iostream>
using namespace std;
struct Test{
virtual ~Test(){};
int a;
};
struct Test1{
virtual ~Test1(){};
int b;
};
struct Drived:public Test,public Test1{
virtual ~Drived(){};
int c;
};
int main()
{
Test1 *p=new Drived;
Drived*ptr=dynamic_cast<Drived*>(p);
cout<<(void*)p<<" "<<(void*)ptr<<endl;
system("pause");
return 0;
}
#include <iostream>
using namespace std;
class A
{
public:
virtual ~A(){cout<<"A destructor"<<endl;}
};
class B
{
public:
virtual ~B(){cout<<"B destructor"<<endl;}
};
class C:public A,public B
{
public:
virtual ~C(){cout<<"C destructor"<<endl;}
};
int main () {
C *c=new C;
A *a=static_cast<A*>(c);
B *b=static_cast<B*>(c);
cout<<c<<" "<<a<<" "<<b<<endl;
delete b;
return 0;
}