欢迎来到天天文库
浏览记录
ID:20789596
大小:781.50 KB
页数:61页
时间:2018-10-15
《gis程序设计第三章》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、3.1类与对象概念的引入3.2类的声明3.3对象的声明3.4构造函数与析构函数3.4.1构造函数3.4.2析构函数3.5类的组合3.6静态成员3.6.1静态数据成员3.6.2静态成员函数3.7友元3.7.1友元函数3.7.2友元类3.8常对象、常成员函数与常数据成员3.8.1常对象3.8.2常数据成员3.8.3常成员函数3.9类的作用域及对象的生存期3.9.1类作用域3.9.2对象生存期3.10面向对象标记第3章类与对象类是C++语言面向对象程序设计的基础,在C++语言面向对象程序设计中占据着核心地位。在面向对象的程序设计中,C++程序就是由类的实例——对象构成的。
2、本章将详细介绍有关类及对象的基本知识,并开始采用面向对象程序设计方法进行C++编程。类是对对象的抽象和描述,对象是类的实例。类是数据及其相关函数的封装体。能实现数据的封装,使用户在访问对象时不必关心它的内容及它是如何工作的,只需知道它能做什么。类的应用能使有关这个事物的信息都出现在相同的地方,容易定位、复制和处理数据。【3.1类与对象概念的引入】类也是一种用户自定义数据类型。它不仅包含不同数据类型的变量,还包含了对这些变量数据进行操作的函数。类的声明形式如下:class类名{public:若干成员;protected:若干成员;private:若干成员;};类是一组
3、变量及其相关函数的组合。类中的变量称为类的成员变量或数据成员;函数称为类的函数成员或方法。成员函数用于处理数据成员,从而描述类的行为,在类的声明内一般只声明其函数原型,在类外定义函数的实现。指明了这里声明的是一个类类型。是新建类的名称,它是一个标识符。花括号内列出的是类的成员,包括数据成员和成员函数。【3.2类的声明】如果一个成员函数只供类中的其他成员函数调用,也应该声明为私有的。在类的声明中,关键字public、protected和private的出现顺序是任意的,可以不出现或多次出现。类中的每个成员只能有一种特定的访问属性。声明“圆柱体”的类classCylin
4、der{公有成员:用关键字public声明,其中的成员一般是成员函数,用于定义类的外部接口,在程序中的任何部分都可以访问。私有成员:可用关键字private声明,其中成员一般是数据成员,用于描述类的属性,它们只能被类自身的成员函数访问。类的成员在默认情况下都是私有的。保护成员:用关键字protected声明的类成员。类成员按访问权限控制分类例3-1public://公有成员,声明类的外部接口voidsetcylinder(doubler,doubleh);//成员函数,用来设置圆柱体的半径和高doublegetradius();//成员函数,用来获取圆柱体的半径do
5、ublegetheight();//成员函数,用来获取圆柱体的高doublevolume();//成员函数,用来计算圆柱体的体积doublesurface_area();//成员函数,用来计算圆柱体的表面积private://私有成员doubleradius;//数据成员,声明圆柱体的半径doubleheight;//数据成员,声明圆柱体的高};把私有成员的声明放在了最前面,注意这里省略了关键字private。注说明:把数据成员都声明为私有,并另外建立getradius()、getheight()及setcylinder()函数来访问这些私有数据成员。使得程序的其他
6、部分对数据成员的访问只能通过公有成员函数来进行,因而数据成员类型改变所产生的影响被控制在类的内部,对程序的其他部分没有影响。`在声明类时把私有成员放在最前面classCylinder{//私有成员doubleradius;doubleheight;public://公有成员voidsetcylinder(doubler,doubleh);doublegetradius();doublegetheight();doublevolume();doublesurfacearea();};在声明类时,一般来说应该把类的所有数据成员都声明为私有的,同时声明公有成员函数来访问这
7、些数据成员。在类内不允许对声明的数据成员进行初始化。注例3-2对于成员函数,类的声明内一般只声明其函数原型,具体实现要在类外定义。不能在声明类时给数据成员赋初值classCylinder{public:voidsetcylinder(doubler,doubleh);doublegetradius();doublegetheight();doublevolume();doublesurfacearea();private:doubleradius(5.0);//错误,不能在类中给数据成员赋初值doubleheight=10.0;//错误,不能在类中给数据成员赋初
此文档下载收益归作者所有