预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10
亲,该文档总共73页,到这已经超出免费预览范围,如果喜欢就直接下载吧~
如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
会计学本章主要(zhǔyào)内容7.1类的继承(jìchéng)与派生7.1.1继承与派生问题(wèntí)举例继承与派生(pàishēng)问题举例继承(jìchéng)与派生问题举例继承(jìchéng)与派生问题举例继承与派生(pàishēng)的目的7.1.2派生类的定义(dìngyì)10111213继承(jìchéng)方式7.2.1公有(gōngyǒu)继承(public)例7-1公有继承(jìchéng)举例classRectangle:publicPoint//派生类声明{public://新增公有(gōngyǒu)函数成员voidInitR(floatx,floaty,floatw,floath){InitP(x,y);W=w;H=h;}//调用基类公有(gōngyǒu)成员函数floatGetH(){returnH;}floatGetW(){returnW;}private://新增私有数据成员floatW,H;};#include<iostream>#include<cmath>usingnamecpacestd;intmain(){Rectanglerect;rect.InitR(2,3,20,10);//通过(tōngguò)派生类对象访问基类公有成员rect.Move(3,2);cout<<rect.GetX()<<','<<rect.GetY()<<','<<rect.GetH()<<','<<rect.GetW()<<endl;return0;}7.2.2私有(sīyǒu)继承(private)例7-2私有(sīyǒu)继承举例21#include<iostream>#include<cmath>usingnamecpacestd;intmain(){//通过派生类对象只能访问(fǎngwèn)本类成员Rectanglerect;rect.InitR(2,3,20,10);rect.Move(3,2);cout<<rect.GetX()<<','<<rect.GetY()<<','<<rect.GetH()<<','<<rect.GetW()<<endl;return0;}7.2.3保护(bǎohù)继承(protected)protected成员的特点(tèdiǎn)与作用例7-3protected成员(chéngyuán)举例classA{protected:intx;};classB:publicA{public:voidFunction();};voidB::Function(){x=5;}类型(lèixíng)兼容规则指在需要基类对象的任何地方,都可以使用公有派生类的对象来替代28例7-4类型(lèixíng)兼容规则举例classB1:publicB0{public:voiddisplay(){cout<<"B1::display()"<<endl;}};classD1:publicB1{public:voiddisplay(){cout<<"D1::display()"<<endl;}};voidfun(B0*ptr)//普通函数(hánshù){ptr->display();//"对象指针->成员名"}voidmain()//主函数{B0b0;//声明(shēngmíng)B0类对象B1b1;//声明(shēngmíng)B1类对象D1d1;//声明(shēngmíng)D1类对象B0*p;//声明(shēngmíng)B0类指针p=&b0;//B0类指针指向B0类对象fun(p);p=&b1;//B0类指针指向B1类对象fun(p);p=&d1;//B0类指针指向D1类对象fun(p);}基类与派生类的对应(duìyìng)关系多继承(jìchéng)时派生类的声明多继承(jìchéng)举例voidA::setA(intx){a=x;}voidB::setB(intx){b=x;}voidC::setC(intx,inty,intz){//派生类成员直接访问基类的//公有成员setA(x);setB(y);c=z;}//其它(qítā)函数实现略7.5.1继承(jìchéng)时的构造函数1单一(dānyī)继承时的构造函数单一(dānyī)继承时的构造函数举例B::B(){b=0;cout<<"B'sdefaultconstructorcalled."<<endl;}B::B(inti){b=i;