[工学]C++第三章课件

上传人:豆浆 文档编号:49679346 上传时间:2018-08-01 格式:PPT 页数:163 大小:686KB
返回 下载 相关 举报
[工学]C++第三章课件_第1页
第1页 / 共163页
[工学]C++第三章课件_第2页
第2页 / 共163页
[工学]C++第三章课件_第3页
第3页 / 共163页
[工学]C++第三章课件_第4页
第4页 / 共163页
[工学]C++第三章课件_第5页
第5页 / 共163页
点击查看更多>>
资源描述

《[工学]C++第三章课件》由会员分享,可在线阅读,更多相关《[工学]C++第三章课件(163页珍藏版)》请在金锄头文库上搜索。

1、C+面向对象程序设计计算机与信息工程学院软件工程系 E-mail:jade_杨玉星第三章 类和对象1本章主要内容:u3.1 类和对象的基本概念u3.2 构造函数和析构函数u3.3 对象数组和对象指针u3.4 String 类u3.5 向函数传递参数u3.6 对象的赋值和复制u3.7 静态成员u3.8 友元u3.9 类的组合u3.10 常类型23.1 类和对象的基本概念33.1 类和对象的基本概念u3.1.1 结构体和类u3.1.2 成员函数的定义u3.1.3 对象的定义和使用u3.1.4 类的作用域和类成员的的访问属性43.1 类和对象的基本概念#include struct Date int

2、 year; int month; int day; void setDate(int y, int m, int d) year=y; month=m; day=d; void showDate() coutu class Coord upublic:u void setCoord(int a,int b) x=a; y=b; u int getx() return x; u int gety() return y; u private:u int x,y; u;21uvoid main()u Coord op1;u int i, j;u op1.setCoord(5,6); / 初始化对象

3、op1u i=op1.getx(); / 调用op1的getx(),取op1的x值u j=op1.gety(); / 调用op1的gety(),取op1的y值u coutu class myclassu public:u int i;u void init(int);u void show() cout class Desk public:Desk()weight=10;high=5;width=5;length=5;protected:int weight;int high;35int width;int length; ;void fn() Desk da; /constructor ca

4、ll/ 构造函数可以在类体外定义,例如: #include class Desk public:Desk();36protected:int weight;int high;int width;int length; ;Desk:Desk() /constructor definition weight=10;high=5;width=5;length=5;cout class Student public:Student()cout class Student public:Student()cout #include “tdate1.h” void main() Tdate1 today(

5、2001,5,1),tomorrow(2001,5,2);cout #include class Student public:Student(char *pname,int xhours,int xage)cout class Tdate public:Tdate();Tdate(int d);Tdate(int m,int d);Tdate(int m,int d,int y);/.4 重载构造函数59protected:int month,day,year; ; Tdate:Tdate() month=4; day=15; year=1995;coutuclass Aupublic:u

6、A(int x1=0) x=x1; u void copy(A *this=y; u void disp()coutx class exam public: void set_x(int n) x=n; int get_x() return x; private: int x; ; 70 main() exam ob4; int i; for (i=0;i class exam public: exam() x=123; exam(int n) x=n; int get_x() return x; private: int x; ;72 main() exam ob14=11,22,33,44

7、; exam ob24=55,66; exam ob34=exam(11),exam(22), exam(33), exam(44); exam ob44=exam(55), exam(66); ob42=exam(77); ob43=exam(88); int i; for (i=0;i”操作符。74#include class exe public:void set_a(int a) x=a; void show_a() coutshow_a(); return 0; 762. 用对象指针访问对象数组例如,将上例的main()改写为:main() exe ob2,*p;ob0.set_a(

8、10);ob1.set_a(20);p=ob;p-show_a();p+;p-show_a();return 0; 773.4 string 类78#include using namespace std; class String friend ostream void set(int n) i=n; int get( ) return i; private: int i; ;85 void sqr(aClass ob) ob.set(ob.get()*ob.get(); cout class aClass public: aClass(int n) i=n; void set(int n)

9、 i=n; int get() return i; private: int i; ;87 void sqr(aClass *ob) ob-set(ob-get() * ob-get(); coutget() class aClass public: aClass(int n) i=n; void set(int n) i=n; int get() return i; private: int i; ;89 void sqr(aClass cout2.class Coord3.public:4.Coord(int a,int b) / 构造函数5. x=a; y=b; cout 2. clas

10、s Coord 3. public: 4. Coord(int a,int b) 5. x=a; y=b; cout class Testint i,j; public:Test(int x,int y):i(x),j(y) coutu#include uclass Student upublic:uStudent(char *name1,float score1);u void show() u cout u#include uclass Student upublic: u Student(char *stu_no1); u Student(); u void show() u cout

11、u#include uclass Student upublic: u Student(char *stu_no1); u Student(); u void show() u cout u#include uclass Student upublic: u Student(char *stu_no1); u Student(); u void show() u cout静态成员函数名(实参表)返回10-3127关于静态成员函数的几点说明:u可以内嵌,也可类外定义,类外定义时,不加static;u静态成员函数被限定为内部连接(和现行文件相连的其 它文件的文件中的同名函数不会与该静态成员函数产

12、生冲突);u因静态成员函数不含this指针,所以,若要访问非静态 数据成员必须通过对象(或对象指针)来访问参见课 本例p104:例3.22。1283.7.3 通过普通指针访问静态成员u通过指针访问类的静态数据成员(10-4) u#include uclass myclass upublic: u myclass() +i; u static int i; u; uint myclass:i=0; uvoid main() u int *count = u myclass ob1,ob2,ob3,ob4; ucout uclass Test upublic: u Test() +count; u

13、 static int get() return count; uprivate: static int count; u; uint Test:count; uvoid main() u int (*p)()= u Test t1,t2,t3,t4,t5; u cout u#include uclass girl upublic: u girl(char *n,int d) u name=new charstrlen(n)+1; u strcpy(name,n); age=d; u friend void disp(girl /声明友元函数 u girl() delete name; uprivate: u char *name; int age; u; uvoid disp(girl uclass boy upublic: u boy(char *n,int d) u name=new charstrlen(n)+1; u strcpy(name,n); age=d; u void disp(girl u boy() delete name; uprivate: u

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号