风0:43:0 说明: c1ass:关键字 类名:需满足标识符的要求 成员表:若干成员构成的列表 成员包括数据成员(对应于属性)和函数成员(对应于行为 操作) 数据成员一般是变量或其它类的对象 成员变量 函数成员一般是函数的声明或定义-成员函数 private、 public、 protected:关键字,用于对类中的成员 进行访问控制,在类中可以任意次序出现任意多次,分别 表示其后的成员为私有成员、公有成员和保护成员 般将成员变量定义成私有的,而将成员函数定义成公有 的,将提供给客户程序员使用的函数声明成公有的,而将在 类内部使用的辅助函数声明成私有的
20:43:40 说明: .class:关键字 .类名:需满足标识符的要求 .成员表:若干成员构成的列表 成员包括数据成员(对应于属性)和函数成员(对应于行为、 操作) 数据成员一般是变量或其它类的对象 ----- 成员变量 函数成员一般是函数的声明或定义 ----- 成员函数 .private、public、protected:关键字,用于对类中的成员 进行访问控制,在类中可以任意次序出现任意多次,分别 表示其后的成员为私有成员、公有成员和保护成员 .一般将成员变量定义成私有的,而将成员函数定义成公有 的,将提供给客户程序员使用的函数声明成公有的,而将在 类内部使用的辅助函数声明成私有的
风0:43:40 类的成员函数 在类中声明或定义的函数 成员函数定义:两种方法 在类中定义:创建类的同时,在类中直接给出函数体 例: class point{ float fx fY. public void setX(int x)fX=x void sety (int y)(fY=y float getX()( return fX f loat gety()( return fY; 这样的成员函数将成为内联函数,故其函数体应尽可能简洁 在类中声明,在类外定义(实现):使用作用范围解析运算符: 一般把声明放在h的文件中,该文件称做类的接口文件 而把定义放在.cpp的文件,该文件称做类的实现文件 例:银行帐户 链表类
20:43:40 类的成员函数 .在类中声明或定义的函数 .成员函数定义: 两种方法 .在类中定义:创建类的同时,在类中直接给出函数体 例:class Point{ float fX,fY; public: void setX(int x){fX=x;} void setY(int y){fY=y;} float getX( ){ return fX;} float getY( ){ return fY;} }; 这样的成员函数将成为内联函数,故其函数体应尽可能简洁 .在类中声明,在类外定义(实现):使用作用范围解析运算符:: 一般把声明放在.h的文件中,该文件称做类的接口文件 而把定义放在.cpp的文件,该文件称做类的实现文件 例:.银行帐户 .链表类
20:43:40 二.对象 对象:把数据和对数据的操作集成在一起形成的独立实体 类的变量,一个类的对象是该类的一个实例 创建(定义对象的一般形式 类名对象名列表; 1]: Point ptl, pt2, *pPtr 对象的使用:与结构体变量的使用方法相近 通过对象名使用对象的成员(公有成员) 对象名.成员名 例:pt1.setX(100); pt1 setY (10) 通过指向对象的指针使用对象 对象指针变量->成员名 例:pPtr= new Point;//或pPtr=&pt1; pPtr->setX(10) pPtr->setY(20)
20:43:40 二.对象 .对象:把数据和对数据的操作集成在一起形成的独立实体 类的变量,一个类的对象是该类的一个实例 .创建(定义)对象的一般形式: 类名 对象名列表; 例: Point pt1,pt2,*pPtr; .对象的使用:与结构体变量的使用方法相近 .通过对象名使用对象的成员(公有成员): 对象名.成员名 例: pt1.setX(100); pt1.setY(10); .通过指向对象的指针使用对象 对象指针变量->成员名 例:pPtr=new Point; //或 pPtr=&pt1; pPtr->setX(10); pPtr->setY(20);
20:43:40 对象在内存中的存储 创建对象时以类为样板,分配内存空间 Point ptl, pt 2: ptl setX(10); pt1 setY(15) pt2. setX(100); pt 2. setY (12); pt2 fX 10 类 Point的公用区 100 fX fY 15 setX0代码 fY setO setY0代码 setO setYo getX0代码 setYo getXO getY0代码 getXO getO getY O 创建对象时通常仅分配成员变量的空间,而成员函数的代码 由各个对象共享 逻辑上每个对象都包含了一份类中定义的成员
20:43:40 对象在内存中的存储 .创建对象时以类为样板,分配内存空间 Point pt1,pt2; pt1.setX(10);pt1.setY(15); pt2.setX(100);pt2.setY(12); 15 10 fY fX setX() setY() getX() getY() pt1 12 100 fY fX setX() setY() getX() getY() pt2 getY()代码 getX()代码 setY()代码 setX()代码 类Point的公用区 . 创建对象时通常仅分配成员变量的空间,而成员函数的代码 由各个对象共享 . 逻辑上每个对象都包含了一份类中定义的成员
风0:43:0 §3this指针 问题: 类 Account的成员函数中,并没有指明引用的 sName、sID 和fBa1ance分别是哪一个对象的成员,若创建了多个该类的 对象,比如: Account accl, acc2.. 如何保证acc1. Initialize(.)、ac1. Deposit() ac1. Withdraw()和ac1.Get- ba lance0操作的是acc1内部 的成员变量,而ac2. Initialize(.)、ac2. Deposit(.) acc2. Wi thdraw()和acc2. Get balance0操作的是aCc2中的 成员变量?
20:43:40 §3 this指针 问题: 类Account的成员函数中,并没有指明引用的sName、sID 和fBalance分别是哪一个对象的成员,若创建了多个该类的 对象,比如: Account acc1,acc2,…; 如 何 保 证 acc1.Initialize(…) 、 acc1.Deposit(…) 、 acc1.Withdraw(…)和acc1.Get_balance()操作的是acc1内部 的成员变量,而acc2.Initialize(…)、acc2.Deposit(…)、 acc2.Withdraw(…)和acc2.Get_balance()操作的是acc2中的 成员变量?