如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
VisualC++面向对象与可视化程序设计继承与派生为什么需要继承?面向过程的解决方法面向对象的方法建立各类之间的关系(继承)C++的继承1.1派生类的定义格式classA{//类的成员};classB:publicA{//类B新添加的成员};#include<string>usingnamespacestd;classemployee{private:stringname;stringtelnumber;intworkyears;public:employee(){};floatcomputeSalary(){};};classsaleman:publicemployee{private:floatsalesum;public:floatcomputeSalary(){};saleman(){};};派生类对象结构访问属性classA{private:intval1;protected:intval2public:voidf();}voidA::f(){val1++;}Bx//不可访问-y//私有-z//私有-m//私有#n//保护+p//公有-setx-getx+setvalue+display派生类对基类的访问权限基类中private成员,派生类不能访问基类中其他成员,根据访问属性而改变访问属性为protected则protected访问属性为private则private访问属性为public则维持原状。答疑classA{public:voidsetA(int);voidshowA();private:inta;};classB{public:voidsetB(int);voidshowB();private:intb;};classC:publicA,privateB{public:voidsetC(int,int,int);voidshowC();private:intc;};classProtectedClass:protectedBase{public:voidtest(){a1=1;a2=2;//a3=3;}};classControlProtectedClass:publicProtectedClass{public:voidtest(){a1=1;a2=2;a3=3;}};classPrivateClass:privateBase{public:voidtest(){a1=1;a2=2;//a3=3;}};classControlPrivateClass:publicPrivateClass{public:voidtest(){//a1=1;//a2=2;//a3=3;}};classPublicClass:publicBase{public:voidtest(){a1=1;a2=2;//a3=3;}};classControlPublicClass:publicPublicClass{public:voidtest(){a1=1;a2=2;//a3=3;}};派生类的构造函数和析构函数拷贝构造函数析构函数基类成员的访问二义性和虚基类二义性问题二义性问题举例(一)classA{public:voidf();};classB{public:voidf();voidg()};二义性问题举例(二)二义性问题举例(二)BedclassB{public:intb;}classB1:virtualpublicB{private:intb1;}classB2:virtualpublicB{private:intb2;};虚基类的派生类对象存储结构示意图:虚基类及其派生类构造函数什么是类的继承与派生?继承与派生的目的继承的特性私有继承vs.保护继承单继承和多继承多继承时派生类的声明