1.练习代码
#include "stdafx.h"
#include <iostream>
#include <stdio.h>
using namespace std;
class A
{
public:
A() {m_a = 1; m_b =2;}
~A() {};
void fun(){printf("%d%d", m_a, m_b);}
private:
int m_a;
int m_b;
};
class B
{
public:
B(){m_c = 3;}
~B();
void fun(){printf("%d", m_c);}
private:
int m_c;
};
int _tmain(int argc, _TCHAR* argv[])
{
A a;
B *pb = (B*)(&a);
pb->fun();
return 0;
}
2.关键点分析
2.1转换过程
#include "stdafx.h"
#include <iostream>
#include <stdio.h>
using namespace std;
class A
{
public:
A() {m_a = 1; m_b =2;}
~A() {};
void fun(){printf("%d%d", m_a, m_b);}
private:
int m_a;
int m_b;
};
class B
{
public:
B(){m_c = 3;}
~B();
void fun(){printf("%d", m_c);}
private:
int m_c;
};
int _tmain(int argc, _TCHAR* argv[])
{
A a;
B *pb = (B*)(&a);
pb->fun();
return 0;
}
2.2运行结果
