欢迎来到天天文库
浏览记录
ID:34450609
大小:548.90 KB
页数:109页
时间:2019-03-06
《第3章 类和对象(12级)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第3章类和对象主讲:王克朝2013-4-1C++程序设计王克朝1本章主要内容3.1类的构成3.2成员函数的定义3.3对象的定义和使用3.4构造函数与析构函数3.5对象的赋值与复制3.6自引用指针this3.7C++的string类3.1类的构成本节主要内容3.1.1从结构体到类3.1.2类的构成3.1.1从结构体到类1.结构体的扩充C语言结构体一般格式如下:struct结构名{数据};例如下面声明了一个日期结构体:structDate{intyear;//年intmonth;//月intday;//日};例3
2、.1有关日期结构体的例子。#includeusingnamespacestd;structDate{//声明了一个名为Date的结构体intyear;C语言中的结构体缺点:结构体变intmonth;量可以在结构体外直接访问数据,在Cintday;};结构体中的数据是很不安全的。intmain(){Datedate1;date1.year=2010;//可以在结构体外直接访问数据yeardate1.month=8;//可以在结构体外直接访问数据monthdate1.day=25;//可以在结
3、构体外直接访问数据daycout<4、据成员函数函数};3.1.2类的构成在类中,数据成员和成员函数分别属于private部分、和public部分。数据成员和成员函数一般也统称为类的成员。公有成员既可被类内的成类声明的一般格式如下:员函数访问,也可被类的外部class类名{访问,是类与外界的接口。public:公有数据成员;公有成员函数;private:私有数据成员;私有成员只能被类内私有成员函数;的成员函数访问,而类外};部的任何访问都是非法的。用一个类Date来描述日期,其形式如下:classDate{public:voidsetDate(i5、nty,intm,intd);//公有成员函数voidshowDate();//公有成员函数private:设置日期成员intyear;//私有数据成员函数setDate和日期intmonth;//私有数据成员显示成员函数intday;//私有数据成员showDate都是公有};私有数据成员的成员函数,类外部year、month和day只对类Date的数据进能由内部成员函数访行操作,只能通过这问,在类的外部无法两个函数来实现。访问,保护了私有数据的安全。说明:(1)除了private和public之外,类中的6、成员还可以用另一个关键字protected来说明。被protected说明的数据成员和成员函数称为保护成员。类声明的完整格式如下:class类名{public:公有数据成员;保护成员可以由本类的成员函数访公有成员函数;问,也可以由本类的派生类的成员函protected:数访问,而类外的任何访问都是非法保护数据成员;的,将在第5章详细介绍。保护成员函数;private:私有数据成员;私有成员函数;};(2)对一个具体的类来讲,类声明格式中的3个部分并非一定要全有,但至少要有其中的一个部分。一般情况下,一个类的数7、据成员应该声明为私有成员,成员函数声明为公有成员。这样,内部的数据整个隐蔽在类中,在类的外部根本就无法看到,使数据得到有效的保护。(3)类声明中的private、protected和public三个关键字可以按任意顺序出现任意次。但是,如果把所有的私有成员、保护成员和公有成员归类放在一起,程序将更加清晰。(4)C++规定,在默认情况下(即没有指定成员是私有、保护或公有时),类中的成员是私有的。例3.2将例3.1中的结构体struct改为类class。#includeusingnamespa8、cestd;classDate{//将例3.1中的结构体struct改为类classintyear;//私有数据成员私有成员只能被类intmonth;//私有数据成员内的成员函数访问,intday;//私有数据成员而类外部的任何访};问都是非法的。intmain(){Datedate1;date1.year=2010;//错误,在类外不能访问私有数据成员yeardate1.month=8;//错误,
4、据成员函数函数};3.1.2类的构成在类中,数据成员和成员函数分别属于private部分、和public部分。数据成员和成员函数一般也统称为类的成员。公有成员既可被类内的成类声明的一般格式如下:员函数访问,也可被类的外部class类名{访问,是类与外界的接口。public:公有数据成员;公有成员函数;private:私有数据成员;私有成员只能被类内私有成员函数;的成员函数访问,而类外};部的任何访问都是非法的。用一个类Date来描述日期,其形式如下:classDate{public:voidsetDate(i
5、nty,intm,intd);//公有成员函数voidshowDate();//公有成员函数private:设置日期成员intyear;//私有数据成员函数setDate和日期intmonth;//私有数据成员显示成员函数intday;//私有数据成员showDate都是公有};私有数据成员的成员函数,类外部year、month和day只对类Date的数据进能由内部成员函数访行操作,只能通过这问,在类的外部无法两个函数来实现。访问,保护了私有数据的安全。说明:(1)除了private和public之外,类中的
6、成员还可以用另一个关键字protected来说明。被protected说明的数据成员和成员函数称为保护成员。类声明的完整格式如下:class类名{public:公有数据成员;保护成员可以由本类的成员函数访公有成员函数;问,也可以由本类的派生类的成员函protected:数访问,而类外的任何访问都是非法保护数据成员;的,将在第5章详细介绍。保护成员函数;private:私有数据成员;私有成员函数;};(2)对一个具体的类来讲,类声明格式中的3个部分并非一定要全有,但至少要有其中的一个部分。一般情况下,一个类的数
7、据成员应该声明为私有成员,成员函数声明为公有成员。这样,内部的数据整个隐蔽在类中,在类的外部根本就无法看到,使数据得到有效的保护。(3)类声明中的private、protected和public三个关键字可以按任意顺序出现任意次。但是,如果把所有的私有成员、保护成员和公有成员归类放在一起,程序将更加清晰。(4)C++规定,在默认情况下(即没有指定成员是私有、保护或公有时),类中的成员是私有的。例3.2将例3.1中的结构体struct改为类class。#includeusingnamespa
8、cestd;classDate{//将例3.1中的结构体struct改为类classintyear;//私有数据成员私有成员只能被类intmonth;//私有数据成员内的成员函数访问,intday;//私有数据成员而类外部的任何访};问都是非法的。intmain(){Datedate1;date1.year=2010;//错误,在类外不能访问私有数据成员yeardate1.month=8;//错误,
此文档下载收益归作者所有