面向对象技术与c7

面向对象技术与c7

ID:21857506

大小:249.59 KB

页数:23页

时间:2018-10-25

面向对象技术与c7_第1页
面向对象技术与c7_第2页
面向对象技术与c7_第3页
面向对象技术与c7_第4页
面向对象技术与c7_第5页
资源描述:

《面向对象技术与c7》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、十.类的语言基础1.类的声明①基本语法类在编程书写时用一个“class”的保留字来表示,类的名称惯用大写字母开头,C与C#语言的定义格式是:class笑名{成员名字定义表};C++语言对己定义的类的引用声明格式是:class已定义的类名;C++与C#语言的对象定义格式是:已定义的类名对象名表;例hclassA{...};classB;//仅适用于C++语言Aa,b;②class的内部语法结构根据对象的抽象结构和对外所呈现的访问权限的定义,C+4•语言将class的内部分成了三个区域:public:成员声明表区private:成员声明表区protected:成员声明表区•C#语言的cl

2、ass内的成员依靠附加类型的说明得到如同C++语言的三个声明区的访问权限。它们分别是:public、private和protected。class内的成员分为成员数据和成员函数两个部分,可以出现在上述三个声明表区中的任何一个;例2:C++语目C#语言classAclassA{{private:privateinti;inti;publicvoidinit(intx){i=x;}public:staticvoidMain(){}intinit(int);•public区域对应于对象模型的方法部分,但并不只放成员函数;•private区域对位于对象模型的属性部分,除本类对象以外的其它对象

3、与过程都不能直接访问(如下图所示);•protected区与派也有关,以后再议;•在一个class的内部可以选择使用上述三个区域的划分,但private是缺省的。例3:classAinti;public:intinit(int);};•编写吾言的class内部的成员吋推荐只写声明,成员函数的代码定义可通过作用域符号(::)置于class之外,以使class更为好读。在C#语言中声明与定义是一体化,也就无法将成员的声明与定义分离了;例4:classA{inti;public:voidinit(int);};intA::init(intx){i=x;}•C++和c#语言中的消息格式与c语

4、言中对结构实例的引用非常相似;例5:C++语言#includeusingnamespacestd;classA{private:inti;public:intinit(int);};intA::init(intx){returni=x;}voidmain()C#语言usingSystem;classA{inti;publicvoidinit(intx){i=x;}publicintget(){returni;}staticvoidMain(){Aa=newA();//对象引用a.init(O);Console.Write(a.get());Aa;cout«a.in

5、it(0);}C#语言除丫public、private和protected的概念与C++语言的同名分区保留字基本相同以外(C#语言的public还允许其它工程访问),还另外定义了专门用于确定自身访问目的新保留字internal。该保留字作为成员数据的附加类别示意编译器只允许本工程或指定工程内的对象访问该成员数据。1.类中成员数据的初始化①构造函数(Constructorfunction)与析构函数(Deconstructorfunction)在对象生成的同时被用来为对象动态地开辟内存空间并对对象的成员数据进行初始化的专用函数称为构造函数。在对象撤消的同时被用来释放对象初始时的内存空间

6、的专用函数称为析构函数。•构造函数名与类名相同且不得使用任何返回值类型声明;•无任何参数的构造函数又称为缺省构造函数;•构造函数不显性的写出时会巾编译器强制插入一个缺省构造函数;•每当构造函数被执行一次便会生成一个对象;•隐式声明的缺省构造函数是公开的内联函数(仅适用于C++语言);•当一个类中含存多个秉载的构造函数时,对象定义的格式将是对其引用的区别标志;例6:classAinti;public:A(){i=O;}A(intx){i=x;}};voidmain(){Aa,b(0);}classAinti;A(){i:0;}A(intx){i=x;}staticvoidMain(){

7、Aa=newA();}};•析构函数的格式要求与构造函数相同,只是在名字的前方附加“同命名空间或作用域内的对象的析构函数在被执行一次后将撤消该对象的活化状态,但仍保留对象在内存中驻留,因而该对象仍可以正常的响应消息的传递(但在其命名空间或作用域撤消时不会留下碎片)•,•当类对象所在的命名空间或作用域被撤消时,处于该命名空间或作用域内的对象的析构函数会被自动执行一次来完成撤消对象的内存驻留;•一个类中右且仅能存一个析构函数(意即:不得使用任何参数且没有重载的

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。