欢迎来到天天文库
浏览记录
ID:59451639
大小:266.50 KB
页数:39页
时间:2020-09-18
《类与对象的基本概念ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、3.1类与对象的基本概念知识回顾对象的概念:对象是其自身所具有的状态特征及可对这些对象施加的操作结合在一起所构成的独立实体。类的概念:具有相同或相似属性和行为的一组对象的共同描述。类由数据和方法构成,即:类=数据+函数。本节通过类和对象的语言实现,进一步说明类和对象的基本概念。引例:复数结构(C语言描述)分析:复数由实部和虚部组成,用结构体描述如下:structcomplex{doublereal;/*复数的实部*/doubleimag;/*复数的虚部*/};局限:该结构体只描述数据,不包含行为。问题:类包含数据和行为,那么结构和类间有何关系?3.1.1C++的结构类型与类1.C++对结
2、构类型的扩充2.类的声明1.C++对结构类型的扩充3.1.1C++对结构类型进行了扩充,它不仅可以含有不同类型的数据,还可以含有函数。引例的复数结构可以用C++的结构类型描述如例3-1-1:例3-1-1数据成员成员函数intmain(){structcomplexA;A.real=1.1;A.imag=2.2;cout<<"A="<3、s2.459671.C++对结构类型的扩充3.1.1C++的结构类型包含数据和函数。其中,数据称为数据成员,函数称为成员函数。C++的结构类型存在局限:数据隐蔽性差,即安全性不够。原因:成员的默认访问权限是公有(public)的。解决方案:人为将其改为私有(private)的。请看例3-1-2:小结:C++对结构类型作如下扩充1.C++对结构类型的扩充3.1.11.C++对结构类型的扩充3.1.1intmain(){complexA;A.real=1.1;A.imag=2.2;cout<<"A="<4、omplexAis“<5、real;//默认为私有数据doubleimag;//默认为私有数据public:voidinit(doubler,doublei){real=r;imag=i;}doubleget_real(){returnreal;}doubleget_imag(){returnimag;}doubleabscomplex(){doublet;t=real*real+imag*imag;returnsqrt(t);}};class2.类的声明3.1.1例3-1-3用类声明例3-1-2的复数结构主函数不需要做任何改变intmain(){complexA;A.init(1.1,2.2);cout<<"A6、="<7、有成员和公有成员归类放置以提高程序可读性。classcomplex{doublereal;doubleimag;public:voidinit(doubler,doublei);doubleget_real();doubleget_imag();doubleabscomplex();};2.类的声明3.1.1类声明的几点说明(续前页):除了public和private访问权限外,还可以设置protected访问权限。三种访问权限不一
3、s2.459671.C++对结构类型的扩充3.1.1C++的结构类型包含数据和函数。其中,数据称为数据成员,函数称为成员函数。C++的结构类型存在局限:数据隐蔽性差,即安全性不够。原因:成员的默认访问权限是公有(public)的。解决方案:人为将其改为私有(private)的。请看例3-1-2:小结:C++对结构类型作如下扩充1.C++对结构类型的扩充3.1.11.C++对结构类型的扩充3.1.1intmain(){complexA;A.real=1.1;A.imag=2.2;cout<<"A="<4、omplexAis“<5、real;//默认为私有数据doubleimag;//默认为私有数据public:voidinit(doubler,doublei){real=r;imag=i;}doubleget_real(){returnreal;}doubleget_imag(){returnimag;}doubleabscomplex(){doublet;t=real*real+imag*imag;returnsqrt(t);}};class2.类的声明3.1.1例3-1-3用类声明例3-1-2的复数结构主函数不需要做任何改变intmain(){complexA;A.init(1.1,2.2);cout<<"A6、="<7、有成员和公有成员归类放置以提高程序可读性。classcomplex{doublereal;doubleimag;public:voidinit(doubler,doublei);doubleget_real();doubleget_imag();doubleabscomplex();};2.类的声明3.1.1类声明的几点说明(续前页):除了public和private访问权限外,还可以设置protected访问权限。三种访问权限不一
4、omplexAis“<5、real;//默认为私有数据doubleimag;//默认为私有数据public:voidinit(doubler,doublei){real=r;imag=i;}doubleget_real(){returnreal;}doubleget_imag(){returnimag;}doubleabscomplex(){doublet;t=real*real+imag*imag;returnsqrt(t);}};class2.类的声明3.1.1例3-1-3用类声明例3-1-2的复数结构主函数不需要做任何改变intmain(){complexA;A.init(1.1,2.2);cout<<"A6、="<7、有成员和公有成员归类放置以提高程序可读性。classcomplex{doublereal;doubleimag;public:voidinit(doubler,doublei);doubleget_real();doubleget_imag();doubleabscomplex();};2.类的声明3.1.1类声明的几点说明(续前页):除了public和private访问权限外,还可以设置protected访问权限。三种访问权限不一
5、real;//默认为私有数据doubleimag;//默认为私有数据public:voidinit(doubler,doublei){real=r;imag=i;}doubleget_real(){returnreal;}doubleget_imag(){returnimag;}doubleabscomplex(){doublet;t=real*real+imag*imag;returnsqrt(t);}};class2.类的声明3.1.1例3-1-3用类声明例3-1-2的复数结构主函数不需要做任何改变intmain(){complexA;A.init(1.1,2.2);cout<<"A
6、="<7、有成员和公有成员归类放置以提高程序可读性。classcomplex{doublereal;doubleimag;public:voidinit(doubler,doublei);doubleget_real();doubleget_imag();doubleabscomplex();};2.类的声明3.1.1类声明的几点说明(续前页):除了public和private访问权限外,还可以设置protected访问权限。三种访问权限不一
7、有成员和公有成员归类放置以提高程序可读性。classcomplex{doublereal;doubleimag;public:voidinit(doubler,doublei);doubleget_real();doubleget_imag();doubleabscomplex();};2.类的声明3.1.1类声明的几点说明(续前页):除了public和private访问权限外,还可以设置protected访问权限。三种访问权限不一
此文档下载收益归作者所有