1 / 29
文档名称:

C++程序设计05-程序的结构.ppt

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

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

分享

预览

C++程序设计05-程序的结构.ppt

上传人:中国课件站 2011/10/11 文件大小:0 KB

下载得到文件列表

C++程序设计05-程序的结构.ppt

文档介绍

文档介绍:C++语言程序设计
第5讲: C++程序的结构
构造函数
class Clock {
public:
Clock() : hour(0), minute(0), second(0) {}
Clock(int NewH, int NewM=0, int NewS=0);
Clock(Clock& c);
private:
int hour; int minute; int second;
};
Clock::Clock(int NewH, int NewM, int NewS)
{
hour = NewH; minute = NewM; second = NewS;
}
Clock::Clock(Clock& c)
{
hour = ; minute = ; second = ;
}
相当于:Clock::Clock() { hour = minute = second = 0; }
拷贝构造函数
默认参数构造函数
析构函数
class Clock {
public:
Clock();
void SetTime (int, int, int);
void ShowTime();
~Clock(); // 析构函数
private:
int hour; int minute; int second;
char* pbuf;
};
Clock::Clock() { pbuf = new char[128]; }
Clock::~Clock() { delete[] pbuf; }
对象被删除的时刻自动调用
main()
{
Clock c; // 构造
(9,30,30);
} // 析构
构造函数可使每个对象都有正确的初始值
析构函数可使每个对象在结束时自动进行清理工作
析构函数的使用
一个类只能有一个析构函数,不允许重载!
最先析构的是自动变量;
静态对象的生命期一直到程序结束;(static)
全局对象是最后被析构的。
访问函数和工具函数
将类的函数分为两大类,访问函数和工具函数。
访问函数是供客户调用的,一般为public。
工具函数是为实现访问函数的某些功能而需要的函数,一般为private。
数据成员和成员函数的使用
数据一般设为私有成员,便于保护;
需要用户设置的私有数据成员用get和set提供给用户;
要保证私有数据成员在任何时候都是有效的。
接口与实现的分离
软件工程的一个最基本的原则:接口与实现分离
.
类的定义与类的实现分离
但是Java中类的定义与实现是在一起的,Why?
因为Java中有一个专门管接口的类叫Interface。这个类是公开的,而其他类则被屏蔽起来。
这种方式称为对象的“包装”或称“封装”。
public:, private: ( protected: ) 都是用来控制成员函数的作用。
类的客户可通过公有成员(public)知道类提供什么样的服务。
类的客户不能直接访问类的私有成员(private),它们只能通过成员函数(或友元)来访问。
C++提倡编写与实现无关的程序。在类定义中尽量避免写函数实现的代码。(也不是绝对的,只要觉得可以公开,并以后不会改动,则可以将实现写到类的定义中)
[注意]在理论上 public:, private: protected: 只使用一次。但现在C++编译器(如VC++)可支持多次。而在Java中每一个函数前面都要求加上这个说明符。
§ 控制对成员的访问
§ 软件的可重用性
面向对象的程序设计的一个重要目标就是软件的可重用性。
可重用性意味着以前的代码可以部分加以利用,并对其余部分改写,以免整个程序重新编写。
要实现可重用性,程序必须设计良好、具有较好的可读性,并预先把需要扩展部分考虑好。
函数原型(prototype)的作用域
函数原型中的参数,其作用域仅限于声明中。
例如,设有下列原型声明:
double Area(double radius);
radius 的作用域仅在于此,不能用于程序正文其他地方,因而可有可无。可以写成:
double Area(double);
double Area(double radius=5);
可简化成 double Area(double =5);
块作用域
在块中声明的标识符,其作用域自声明处起,限于块中,例如:
void fun(int a)
{ int b(a);
cin >> b;
if (b>0)
{
int c;
......
}
}
a 的作用域
b 的作用域
c 的作用域

最近更新

2024年内江卫生与健康职业学院单招职业技能测.. 40页

2024年内蒙古丰州职业学院单招职业倾向性考试.. 40页

2026年低压断路器分为哪几种 4页

2024年内蒙古北方职业技术学院单招职业技能测.. 40页

2024年内蒙古民族幼儿师范高等专科学校单招综.. 42页

2024年内蒙古电子信息职业技术学院单招职业技.. 38页

2024年内蒙古美术职业学院单招职业技能测试模.. 38页

2024年内蒙古赤峰市单招职业倾向性测试题库附.. 40页

网络异常实时检测方法 35页

2024年包头铁道职业技术学院单招职业倾向性测.. 40页

2024年北京市单招职业倾向性测试模拟测试卷含.. 41页

2024年南京信息职业技术学院单招职业技能测试.. 39页

绿色建材与施工工艺 35页

2024年南京机电职业技术学院单招综合素质考试.. 40页

2024年南京特殊教育师范学院单招职业适应性考.. 40页

2024年南京视觉艺术职业学院单招职业技能考试.. 40页

2026年会计试用期间的工作业绩心得体会 12页

2024年南充科技职业学院单招职业倾向性考试题.. 38页

2024年南昌交通学院单招职业倾向性测试模拟测.. 38页

2024年南通科技职业学院单招职业倾向性考试题.. 40页

2024年厦门华厦学院单招职业倾向性考试模拟测.. 40页

2024年厦门华天涉外职业技术学院单招职业适应.. 41页

2024年厦门城市职业学院单招职业适应性考试模.. 39页

【人教版英语字帖】七年级下册单词表衡水体字.. 42页

国开《建筑力学》期末机考答案 15页

农村人才流失国外研究报告 2页

住院患者自带药品使用管理规定通知 3页

栏杆计算书 2页

黄酒评分、扣分标准表(共1页) 1页

曾仕强易经六十四卦解 68页