欢迎来到天天文库
浏览记录
ID:53036079
大小:24.50 KB
页数:3页
时间:2020-03-31
《c++派生类与基类的关系.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、基类对象与派生类对象的使用关系1.派生类对象作为基类对象处理由于派生类具有所有基类的成员,所以把派生类的对赋给基类对象是合理的,不过要求这种继承方式必须是public方式。但是,反过来赋值会使基类中一具有派生类的成员(因为派生类的成员通常是比基类的成员多),所以这是不允许的。2.基类指针指向派生类对象因为派生类对象也是基类对象,所以指向派生类对象的指针可以转换为指向基类对象的指针,这种引用方式是安全的,但是用这种方式只能引用基类成员。如果试图通过基类指针引用那些只有在派生类中才有的成员,编译系统会报告错误。#include#includec
2、lassStud{charname[10];intscore;public:Stud(charna[],ints){strcpy(name,na);score=s;}voiddisp(){cout<=90)cout<<"优"<=80)cout<<"良"<=70)cout<<"中"<=60)cout<<"及格"<3、d{charcname[10];public:Unstud(charna[],charcn[],ints):Stud(na,s){strcpy(cname,cn);}};classGrstud:publicStud{charresearch[10];public:Grstud(charna[],charrs[],ints):Stud(na,s){strcpy(research,rs);}};intmain(){Stud*p;Unstudst1("李明","计科02",85);Grstudst2("王华","数据挖掘",92);p=dynamic_cast(&st1);p4、->disp();p=dynamic_cast(&st2);p->disp();}1.派生类指针强制指向基类对象直接用派生类指针指向基类的对象,这种方式会导致语法错误。但可以将派生类强制转换为基类指针,然后就可以调用基类的成员了。这种强制转换使用的静态转型运算符,其使用格式如下:派生类对象指针=static_static<派生类*>(&基类对象);
3、d{charcname[10];public:Unstud(charna[],charcn[],ints):Stud(na,s){strcpy(cname,cn);}};classGrstud:publicStud{charresearch[10];public:Grstud(charna[],charrs[],ints):Stud(na,s){strcpy(research,rs);}};intmain(){Stud*p;Unstudst1("李明","计科02",85);Grstudst2("王华","数据挖掘",92);p=dynamic_cast(&st1);p
4、->disp();p=dynamic_cast(&st2);p->disp();}1.派生类指针强制指向基类对象直接用派生类指针指向基类的对象,这种方式会导致语法错误。但可以将派生类强制转换为基类指针,然后就可以调用基类的成员了。这种强制转换使用的静态转型运算符,其使用格式如下:派生类对象指针=static_static<派生类*>(&基类对象);
此文档下载收益归作者所有