计算机二级必备c++教程第五章 - 图文

更新时间:2023-09-15 14:29:01 阅读量: 资格考试认证 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

阚道宏C++程序设计第5章类与对象

阚道宏本章主要内容

?

类??

对象构造函数和析构函数??

类的组合友元?

小结编写程序求长方形、圆形的面积

#include using namespace std;//定义函数double RectArea(double x, double y){ return x*y; }数据和处理分离函数只负责处理长方形数据(长、宽)处理(求面积)double CircleArea(double r){ return 3.14159*r*r; }void main(){//定义变量double a, b; double r;//输入数据cin>>a>>b; cin>>r;//调用求面积函数cout<

编写程序求长方形、圆形的面积

#include using namespace std;//定义类class Rect{ double x, y;数据和处理一起管理double Area() { return x*y; }定义数据类型及其操作}class Circle{ double r;double Area() { return 3.14159*r*r; }}void main()类重用(数据+处理){定义变量//定义对象Rect o1; Circle o2;//输入数据cin>>o1.x>>o1.y; cin>>o2.r;//调用求面积函数cout<

阚道宏5.1 类

?

类是自定义的复杂数据类型(属性)及其处理(行为)面向对象程序设计实际就是定义类的过程类是面向对象程序设计的基本单元,描述一类对象的共同属性和行为?

?

5.1.1 类的定义

?

阚道宏类描述了同类对象的静态特征(属性说明)、动态特征(行为说明)。定义该类的变量,称为类的对象。类的定义语法格式如下:class类名{ public:数据成员或函数成员protected:数据成员或函数成员private:数据成员或函数成员};说明:?class是系统关键字,不可缺省。?命名类时,一般首字母大写。?类的属性称为数据成员,声明方式与变量相同,但不能初始化。?类的行为(函数)称为成员函数。?public(公有)、protected(保护)、private(私有)表示对类成员的三种访问控制权限。5.1.1 类的定义

例下面是对手机Phone类的描述。class Phone //class是类定义的关键字,Phone是类名{ private:char type[5]; //机型类的属性说明char color[4]; //颜色(静态特征)double price; //价格public:void call( ) //打电话{ cout<<“打电话”; } void sendmessage( ) //发短信{ cout<<“发短信”; } };类的操作说明(动态特征)阚道宏5.1.2 类成员的访问控制

?

阚道宏public指定其后的成员是公有的,它们是类与外部的接口,被public修饰的类成员在程序的任何部分都可以通过类实例被访问。类外部通过这个接口对类内封装的数据进行操作private指定其后的成员是私有的,若省略关键字private,则必须紧跟在类名称的后面,类中的数据和函数若不特别说明,都被视为私有类型。私有成员只能被本类的成员函数访问,来自类外部的任何其他访问(除友元函数)都是非法的?

5.1.2 类成员的访问控制

?

阚道宏protected指定其后的成员是保护的,性质与私有成员类似,其差别在于继承和派生时派生类的成员函数可以访问基类的保护成员,关于派生继承在第6章介绍,本章不作详细讨论。例类中3种访问控制权限的作用

#include using namespace std;class Circle// 定义类{ float x0, y0, radius;public:

void setOrigin(float x, float y) { x0 = x; y0 = y; }void setRadius(float r) { radius = r; }void showArea() { cout<<3.14159*radius*radius; }void showPerimeter() { cout<<2*3.14159*radius; }}void main(){Circle o1;// 定义对象(创建实例,分配内存空间),通过对象名访问成员o1.radius= 5.0; // 错误: o1.setRadius(5.0);cout<<3.14159*o1.radius*o1.radius; // 错误: o1.showArea();}

本文来源:https://www.bwwdw.com/article/v3vh.html

Top