向上强制转型


#include  <stdio.h>
#include <stdlib.h>
#include <conio.h>
class A
{
public:
	 void myfunc()
	{
		printf("A myfunc!\n");
		mytest();
	}
	virtual void mytest()
	{
		printf("A mytest!\n");
	}
};
class B:public A
{
public:
	void myfunc()
	{
		printf("B myfunc!\n");
	}
	virtual void mytest()
	{
		printf("B mytest!\n");
	}
};
void main()
{
	class B Bb;

	((class  A*)&Bb)->myfunc();
	((class A)Bb).myfunc();

	getch();
}


输出code

A myfunc!对象

B myfunc!get

A myfunc!编译器

A myfunc!io

缘由分析 在34行编译器实现了隐式的拷贝构造 构造出一个A的对象编译

相关文章
相关标签/搜索