码迷,mamicode.com
首页 > 其他好文 > 详细

自考新教材-p233

时间:2020-01-12 19:52:20      阅读:80      评论:0      收藏:0      [点我收藏+]

标签:name   类型   end   amp   return   prot   UNC   void   强制类型转换   

基类与派生类之间的互相转换,使用指针的情况

源程序:

#include<iostream>

using namespace std;

 

class CBase

{

protected:

int n;

public:

CBase(int i):n(i){}

void Print()

{

cout<<"CBase:n="<<n<<endl;

}

};

class CDerived:public CBase

{

public:

int v;

CDerived(int i):CBase(i),v(2*i){}

void Func(){};

void Print()

{

cout<<"CDerived:n="<<n<<endl;

cout<<"CDerived:v="<<v<<endl;

}

};

 

int main()

{

CDerived objDerived(3);

CBase objBase(5);

CBase *pBase = &objDerived;

 

 

CDerived *pDerived;

pDerived = &objDerived;

cout<<"使用派生类指针调用函数"<<endl;

pDerived->Print();

pBase=pDerived;

cout<<"使用基类指针调用函数"<<endl;

pBase->Print();

//pBase->Func(); //错误,通过基类指针不能调用派生类函数

//pDerived=pBase; //错误,派生类指针=基类指针

pDerived=(CDerived*)pBase; //强制类型转换,派生类指针=基类指针

cout<<"使用派生类指针调用函数"<<endl;

pDerived->Print();

return 0;

}

运行结果:

技术图片

自考新教材-p233

标签:name   类型   end   amp   return   prot   UNC   void   强制类型转换   

原文地址:https://www.cnblogs.com/duanqibo/p/12184366.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!