首页 > 编程知识 正文

父类指针指向子类,怎样给派生类赋值

时间:2023-05-04 04:45:15 阅读:163268 作者:2078

# includeiostreamusingnamespacestd; //基类aclassa{public:a(inta ); 公共: void display (; 受保护的: int m _ a; (; a:3360a(inta ) : m_a(a ) voida:3360display ) { cout'Class A: m_a='m_aendl; cout'A: m_a=' m_aendl; //中间派生类bclassb : publica { public : b (inta,int b ); 公共: void display (; 受保护的: int m _ b; (; b:b(inta,int b ) :a(a )、m_b ) (voidb3360:display ) ({ cout'Class B: m_a='m_a ) ) ) //基类cclassc{public:c(intc ); 公共: void display (; 受保护的: int m _ c; (; c:3360c(intc ) : m_c(c ) ) { }void C:display ) ) { cout'Class C: m_c='m_cendl; cout'C: m_c=' m_cendl; //最终衍生轻松的鞋D: public B,publicc{public:d(inta,int b,int c,int d ); 公共: void display (; private: int m_d; (; d:3360d(inta,int b,int c,int d ) : B(a ) a,b ),c ) c,m_d ) { }void D:display ) cout ' cock cock (}int main ) ) cout(-----4初始化四个class----------'endl的a*pa=newa(1; cout'pa='paendl; pa显示(; cout------------endl; b * Pb=newb (2,20 ); cout'pb='pbendl; pb -display (; cout------------endl; 的石头PC=newc(3; cout'pc='pcendl; pc -display (; cout------------endl; d * PD=newd (4,40,400,4000 ); cout'pd='pdendl; pd -display (; cout------------endl; cout------赋值后------endl; pa=pd; pa显示(; cout------------endl; pb=pd; pb - display (; cout------------endl; pc=pd; pc - display (; cout------------endl; cout'pa='paendl; cout'pb='pbendl; cout'pc='pcendl; cout'pd='pdendl; 返回0; }/home/ledi/. clion 2016.2/system/cmake/generated/neww-A0 ddff 1d/A0 ddff 1d/debug/neww--------初始化四个class-------- pa=0x 559 deed 7e 280 class a : m _ a=1a 33603360 m _0x 559 deed 7e 20 m _ b=20b :3360 m _ a=0x 559 deed 7e 2a 0m _ b=0x 559 deed 7e 2a4------------- PC=0x 559 DC-------------------0x 55599 m _ d=4000 d :3360 m _ a=0x 559 deed 7e2e0m _ b=0x 559 deed 7e2e8m _ c=0x 59 deed 7e2EC-- a 3: sb3360m_a=4, m _ b=40b :3360 m _ a=0x 559 deed 7e2E0 m _ b=0x 559 deed 7e2--------- class c 3360-pa=0x 559 deed 7e2E0 Pb=在分配ishedwithexitcode0指针之前,在a中pa=m_a,b中Pb=m_a(b继承a )纤细的乌冬面在pc=m_c中d中pa=m_a ) d继承短手套,c ) pb=pd; pc=pd; 以前将派生类对象分配给基类对象时,如果放弃派生类添加的成员,将派生类的指针分配给基类的指针,则例如pa=pd; 新添加的对象(bcd )在a中没有相应的位置被放弃,pa指向d的第一个元素a的地址&; m _ a ada-----------ABCD pa指向d的第一个元素a的地址&; m _ a 3358 www.Sina.com/da-------m _ a 3358 www.Sina.com

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。