- 1、本文档共58页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
9.1 构造函数
9.2 析构函数
9.3 调用构造函数和析构函数的顺序
9.4 对象数组
9.5 对象指针
9.6 共用数据的保护
9.7 对象的动态建立和释放
9.8 对象的赋值和复制
9.9 静态成员
9.10 友元
9.11 类模板
本章内容提要
9.1 构造函数
9.1.1 对象的初始化在建立一个对象时,常常需要作某些初始化的工
作,例如对数据成员赋初值。
类的数据成员是不能在声明类时初始化的。如果一个类中所有的成员都是公用的,则可以在定义对象时对数据成员进行初始化。
class Time
{public: //声明为公用成员
hour;
minute;
sec;
}; Time t1={14,56,30}; //将t1初始化为14:56:30
2
9.1.2 构造函数的作用
C++提供了构造函数(constructor)来处理对象的初始化。
构造函数是一种特殊的成员函数,与其他成员函数不同,不需要用户来调用它,而是在建立对象时自动执行。
构造函数的名字必须与类名同名
它不具有任何类型,不返回任何值。
3
9.1.2 构造函数的作用
例9.1设计钟,具有校正和报时功能,在构造函数初始化时间。
#include iostream
using namespace std;
class Clock // 声明钟类
{
public: //声明钟类构造函数,函数名与类名相同
Clock(void);
protected: // 钟的时
int nHour; int nMinute; int nSecond ;
public: // 校正
void Check(void); // 报时
void GiveTheCorrectTime(void);
};
4
9.1.2 构造函数的作用
// 校正
void Clock::Check(void)
{
cout校正钟,输入时、分和秒:;
cinnHournMinutenSecond;
}
// 报时
void Clock::GiveTheCorrectTime(void)
{
// 按时间格式输出钟的时、分和秒的值
cout北京时间 nHour:nMinute:nSecondendl;
}
int _tmain(int argc, _TCHAR* argv[])
{
Clock clock; //制造 1个钟clock
clock.GiveTheCorrectTime(); //钟clock报时
clock.Check(); //校正钟clock
clock.GiveTheCorrectTime(); //钟clock报时
Clock watche; //制造 1个表watche
watche.GiveTheCorrectTime(); //表watche报时
watche.Check(); //校正表watche
watche.GiveTheCorrectTime(); //表watche报时
return 0;
} //项目:A time signal clock
9.1.2 构造函数的作用
程序运行的情况为:
北京时间:1:3:8 //钟clock报时
1 6 8↙ //通过键盘校正钟clock的时间
北京时间:1:6:8 //钟clock报时
北京时间:1:3:8 //钟watche报时
6 6 8↙ //通过键盘校正表watche的时间
北京时间:6:6:8 //钟watche报时
构造函数使用说明
在类对象进入其作用域时调用构造函数。
构造函数没有返回值,因此也不需要在定义构造函数时声明类型
构造函数不需用户调用,也不能被用户调用
一般不提倡在构造函数中加入与初始化无关的内容
如果用户自己没有定义构造函数,则C++系统会自动生成一个构造函数,只是这个构造函数的函数体是空的,也没有参数,不执行初始化操作。
8
9.1.3 带参数的构造函数
构造函数首部的一般格式为
构造函数名(类型1 形参1, 类型2 形参2, …)
定义对象的一般格式为
类名 对象名(实参1, 实参2, …);
9
9.1.3 带参数的构造函数
例9.2 汽车和桌子的长、宽、高分别为:
(1)1,3,8;
(2)1,6,8。
求它们的体积。
编一个基于对象的程序,在类中用带参数的构造函数。
#include iostream
usin
文档评论(0)