1 / 32
文档名称:

四川大学计算机学院精品课程,面向对象程序设计C,游洪越,第二.ppt

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

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

分享

预览

四川大学计算机学院精品课程,面向对象程序设计C,游洪越,第二.ppt

上传人:孔乙己 2022/6/18 文件大小:777 KB

下载得到文件列表

四川大学计算机学院精品课程,面向对象程序设计C,游洪越,第二.ppt

相关文档

文档介绍

文档介绍:四川大学计算机学院精品课程,面向对象程序设计C,游洪越,第二
C++类的声明与定义(一)
class CCompanyStaff
{
//声明成员函数
void SetBasicSal ( floa
1、构造函数与析构函数被“隐含”调用,即不管愿意与否,它们都会被“强制”地执行。
2、C++类都有缺省的构造函数,即没有参数的构造函数。它也是“强制”的,不管定义与否,每个类总有一个这样的构造函数。如果没有声明缺省构造函数,编译器将提供一个缺省的构造函数,它并不复杂,只是简单地将所有成员变量初始化为0。
3、没有缺省的析构函数。如果没定义,那么类就没有 析构函数。
4、编程****惯:不管有用没用,为每个类定义明确的构造与析构函数
17
对象的封装性
C++语言引入面向对象思想,引入类(对象)的概念之后,必然会具有一些新的特性。
面向对象思想中类(对象)的基本特性之一:封装性。
封装性:直观理解,类将属于它的数据(成员变量)和针对数据的操作(成员函数)包裹在一起就是一种封装。
封装的目的:保护类(对象)的实现。
对封装属性进行细分:公有的;私有的;保护的。
18
C++的封装(一)
C++语言为了实现面向对象的封装,引入了三个新的“修饰”关键字:
public (公有的):公开的,可见的。对象成员(变量与方法)可以在对象外使用。
private (私有的):不可见的。成员只能在对象内部使用。
protected (保护的):受到保护的。成员也只能在内部使用。(以后再讨论)
C++类的成员(变量和方法)具有了各自不同的属性。
19
C++的封装(二)
class CCompanyStaff
{
public:
void SetBasicSal ( float sal ); // 设置基本工
private :
int m_iStaffNum ; // 工作编号
char m_cName[20] ; // 姓名
float m_fRateOfAttend ; // 出勤率
float m_fBasicSal ; // 基本工资
}; // END
20
C++的封装(三)
CCompanyStaff staff;
(600); //合法的,因为SetBasicSal是一个公开(public)的方法。
= 100; //非法的,因为m_iStaffNum是一个私有(private)的变量。
void CCompanyStaff::SetBasicSal(float sal)
{
m_fBasicSal = sal; //SetBasicSal是对象的 成员,所以它的定义中可以访问m_fBasicSal私有变量。
}
21
C++的封装(四)
1、C++用class类定义中的缺省属性为私有的(private)。
C++用struct定义的类的缺省属性为公有的(public)。
2、每个修饰符的作用范围:从一个修饰符开始,直到另外一个修饰符时结束(或类结束了)。
3、C++类中的成员(变量和方法)都应该明确地指明它们各自的属性。
22
inline与static
inline(内联 )专门修饰类中的成员函数,表示该成员函数在使用时会被“替换”。简单地理解,相当于C语言中的宏处理。
inline后的函数没有调用过程,将有助于代码的执行效率。
static(静态)修改类中的成员(变量和函数),表明该成员只有一个幅本,与具体的对象没有关系。
static后的成员变量可以用于对象间的数据共享。
static后的成员函数只能使用static 成员变量。
23
static成员的使用
当一个成员被static修饰之后,它的使用不再属于各个对象,而是属于这个类。
class CCompanyStaff
{
public:
static void SetBasicSal ( float sal );
static int m_iStaffNum;
}; // END
int CCompany::m_iStaffNum = 1234;// 初始化静态变量
CCompany::SetBasicSal(30000);
24
C++的对象指针(一)
class CCompanyStaff
{
public:
void SetBasicSal ( float salary ); // 设置基本工资
private:
int salary ; // 工作编号