测试:一个派生类对象,用不同的指针指向她。
#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++中如何使用基类和派生类指针操作派生类对象,包括多指针指向同一对象的情况,并通过代码示例展示了不同指针之间的转换及调用虚函数的过程。
1483

被折叠的 条评论
为什么被折叠?



