reinterpret_cast类型转换运算符的理解

来源:互联网 发布:matlab 最优化问题 编辑:程序博客网 时间:2024/05/19 16:06

今天同学在群里发了一篇题,关于reinterpret_cast类型转换的,个人觉得有必要记录一下:

题目代码如下:

#include <iostream>using namespace std;class A {public:virtual void func() {cout << "A::func" << endl;}virtual void funcA() {cout << "A::funcA" << endl;}private:int a;};class B {public:virtual void func() {cout << "B::func" << endl;}virtual void funcB() {cout << "B::funcB" << endl;}private:int b;};class C :public A, public B {public:virtual void func() {cout << "C::func" << endl;}virtual void funcC() {cout << "C::funcC" << endl;}private:int c;};void test2(){C c;A *pa = &c;B *pb = &c;C *pc = &c;pa = reinterpret_cast<A *>(pb);pa->func();pa->funcA();//pb = reinterpret_cast<B *>(pa);//pb->func();//pb->funcB();//pa = reinterpret_cast<A *>(pc);//pa->func();//pa->funcA();}
分析下运行情况,对此我画了图理解,希望有帮助对大家,如存在问题,麻烦不吝赐教。



0 0
原创粉丝点击