基类指针和派生类指针的使用总结(二)


测试:一个派生类对象,用不同的指针指向她。


#include <iostream>

using namespace std;


class base
{
public:
	virtual void func(){cout<<"base"<<endl;}
};

class derive:public base
{
public:
	virtual void func(){cout<<"derive"<<endl;}
};

void test()
{
	base* ptr1 = new  derive();//先用基类指针
	ptr1->func();

	derive* ptr2 = (derive*)ptr1;//再用派生类指针,需要强制转换
	ptr2->func();

	base* ptr3= ptr2;//再用基类指针
	ptr3->func();

}



int main(void)
{
	test();

return 0;
}


输出:

derive
derive
derive





你可能感兴趣的:(C++,c,继承,指针)