1 / 33
文档名称:

C++面向对象特征.doc

格式:doc   页数:33页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

C++面向对象特征.doc

上传人:xgs758698 2016/1/25 文件大小:0 KB

下载得到文件列表

C++面向对象特征.doc

相关文档

文档介绍

文档介绍:C++面向对象特征本章主要介绍C++语言中的面向对象特征,包括类的定义及其实例化,重载及模板的实现,继承的方式和种类以及它们之间的相互关系。本章不以语法为主。更为详细的内容请参阅相关书籍。++语言继承和发展和C语言,它是在原有的结构化程序设计语言C的基础上增加了面向对象特征,从而成为一种典型的混合式面向对象语言。因此,C++具有C语言的所有特点,包括语言的简洁性、编程的灵活性、模块化结构、可移植性强等等。同时作为混合式面向对象语言的先祖,为所有的熟悉C语言的设计人员接触和了解面向对象技术起到了至关重要的作用。本章主要介绍C++语言中的以下几种主要功能和机制:?类和对象?重载技术?模板技术?继承机制其它功能和机制(如新的注释方式、内联、引用、友员、输入/输出流等)虽然不属于标准的面向对象特征,但作为C++语言的标准,在编写和阅读程序时还是非常必要的。,从关键字class开始。与结构(struct)类型相比,类有以下主要特征:?一个类中不仅包括有数据成员,还可以包括方法成员?类中成员都需要指定可访问特性(私有、公有、受保护)?如果不指定成员的可访问特性,缺省为私有?特殊方法(构造方法和析构方法)不需要指定可访问特性有下面的string类定义的例子:classstring{//类定义开始private://定义私有成员char*contents;public://定义公有成员string(){};//构造方法,与类名相同~string(){};//析构方法intget_length(){returnstrlen(contents);}char*get_contents(){return*contents;}voidset_contents(char*in_contents);}一个类中的方法定义可以直接在类中实现,如string类中的get_length方法,通常用于方法定义简短的情况;也可以在类中只给出方法原型,如string类中的set_contents方法,用于方法定义较长的情况。在类定义之外实现一个类的方法时,必须告诉编译程序该方法属于哪一个类。这是通过用类名和作用域区分符(::)来修饰函数名来实现的。String类中的set_contents方法定义如下:voidstring::set_contents(char*in_contents){contents=newchar[strlen(in_contents)+1];strcpy(contents,in_contents);}在string类中,set_contents方法的实质是对私有属性成员初始化,而这正是类构造方法的作用。由此改写的string类如下:classstring{//类定义开始private://定义私有成员char*contents;public://定义公有成员string(){};//构造方法,与类名相同string(char*in_contents);//重载构造方法~string(){};//析构方法intget_length(){returnstrlen(contents);}char*get_contents(){return*contents;}voidset_contents(char*in_contents);}相应的实现为:string::string(char*in_contents){contents=newchar[strlen(in_contents)+1];strcpy(contents,in_contents);}(对象)可以通过对类进行实例化而生成对象,通过对象进一步使用对象成员,如:strings1,s2(“Thisisanexample”);其中,对象s1在生成时没有给出参数,因而没有向私有成员赋值,而s2在生成时自动向私有成员赋了一个初始值,它们各自自动调用了不同的构造函数。可以调用s1的set_contents方法对属性成员赋值:(“forinitial”);执行以下的各语句:cout<<();cout<<();cout<<();cout<<();的结果依次为:11,18,forinitial和Thisisanexample。由于私有成员的对外不可见性,。,重载包括方法的重载和运算符的重载。对于方法的重载,只要满足相应的条件就可以实现。在一个类中,凡是方法名相同而通过参数可以相互区分的一组方法就构成重载关系。本节主要介绍C++语言中