欢迎来到天天文库
浏览记录
ID:50297348
大小:366.00 KB
页数:59页
时间:2020-03-07
《C++面向对象程序设计 教学课件 作者 李素若 任正云 张牧 陈万华 编著第3章 类和对象.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第3章类和对象(一)3.1类的构成3.1.1从结构到类例:有关日期结构的例子。#includestructDate{intyear;intmonth;intday;};main(){Datedate1;//关键字struct不必要date1.year=2003;date1.month=8;date1.day=25;cout<2、像定义类一样定义structSavings{public:unsigneddeposit(unsignedamount)//成员函数{balance+=amount;returnbalance;}private:unsignedaccountNumber;//数据成员floatbalance;};C++中类与结构的唯一区别是:类(class)定义中默认情况下的成员是private的,而结构中默认情况下的成员是public的。3.1.2类的构成类声明的一般格式如下::class类名{public:3、公有数据成员;公有成员函数;protected:保护数据成员;保护成员函数;private:私有数据成员;私有成员函数;};用一个类来描述日期,其形式如下:classDate{public:voidsetDate(inty,intm,intd);voidshowDate();private:intyear;intmonth;intday;};3.1.2类的构成成员函数的声明通常采用以下两种方式:(1)将成员函数以普通函数的形式进行说明,这种成员函数在类外定义的一般形式是:返回类型类名∷成员函数名4、(参数表){//函数体}3.1.2类的构成例如,以下是表示坐标点的类Coord的声明。classCoord{public:voidsetCoord(int,int);//设置坐标点intgetx();//取x坐标点intgety();//取y坐标点private:intx,y;};voidCoord∷setCoord(inta,intb){x=a;y=b;}intCoord::getx(){returnx;}intCoord::gety(){returny;}3.1.2类的构成例3.2在类之后定5、义成员函数#include#include"tdate.h"voidTdate::Set(intm,intd,inty){month=m;day=d;year=y;}intTdate::IsLeapYear(){return(year%4==0&&year%100!=0)6、7、(year%400==0);}voidTdate::Print(){cout<8、,可以用下面两种格式将成员函数声明为类的内联函数:①隐式声明直接将函数声明在类内部。3.1.2类的构成例如:classCoord{public:voidsetCoord(inta,intb){x=a;y=b;}intgetx(){returnx;}intgety(){retruny;}private:intx,y;};3.1.2类的构成例3.1成员函数和数据成员的定义#includeclassTdate{public:voidSet(intm,intd,inty){mon9、th=m;day=d;year=y;}intIsLeapYear(){return(year%4==0&&year%100!=0)10、11、(year%400==0);}voidPrint(){cout<12、一般形式是:inline返回类型类名::成员函数名(参数表){//函数体}3.1.2类的构成例如上面的例子改为显式声明可变成如下形式:classCoord{public:voidsetCoord(int,int);intgetx();intgety();private:intx,y;};inlinevoidCoord::setCoord(inta,intb){x=a;y=b;}inlineintCoord::getx(){returnx;}inlineintCoord::gety(){retur
2、像定义类一样定义structSavings{public:unsigneddeposit(unsignedamount)//成员函数{balance+=amount;returnbalance;}private:unsignedaccountNumber;//数据成员floatbalance;};C++中类与结构的唯一区别是:类(class)定义中默认情况下的成员是private的,而结构中默认情况下的成员是public的。3.1.2类的构成类声明的一般格式如下::class类名{public:
3、公有数据成员;公有成员函数;protected:保护数据成员;保护成员函数;private:私有数据成员;私有成员函数;};用一个类来描述日期,其形式如下:classDate{public:voidsetDate(inty,intm,intd);voidshowDate();private:intyear;intmonth;intday;};3.1.2类的构成成员函数的声明通常采用以下两种方式:(1)将成员函数以普通函数的形式进行说明,这种成员函数在类外定义的一般形式是:返回类型类名∷成员函数名
4、(参数表){//函数体}3.1.2类的构成例如,以下是表示坐标点的类Coord的声明。classCoord{public:voidsetCoord(int,int);//设置坐标点intgetx();//取x坐标点intgety();//取y坐标点private:intx,y;};voidCoord∷setCoord(inta,intb){x=a;y=b;}intCoord::getx(){returnx;}intCoord::gety(){returny;}3.1.2类的构成例3.2在类之后定
5、义成员函数#include#include"tdate.h"voidTdate::Set(intm,intd,inty){month=m;day=d;year=y;}intTdate::IsLeapYear(){return(year%4==0&&year%100!=0)
6、
7、(year%400==0);}voidTdate::Print(){cout<8、,可以用下面两种格式将成员函数声明为类的内联函数:①隐式声明直接将函数声明在类内部。3.1.2类的构成例如:classCoord{public:voidsetCoord(inta,intb){x=a;y=b;}intgetx(){returnx;}intgety(){retruny;}private:intx,y;};3.1.2类的构成例3.1成员函数和数据成员的定义#includeclassTdate{public:voidSet(intm,intd,inty){mon9、th=m;day=d;year=y;}intIsLeapYear(){return(year%4==0&&year%100!=0)10、11、(year%400==0);}voidPrint(){cout<12、一般形式是:inline返回类型类名::成员函数名(参数表){//函数体}3.1.2类的构成例如上面的例子改为显式声明可变成如下形式:classCoord{public:voidsetCoord(int,int);intgetx();intgety();private:intx,y;};inlinevoidCoord::setCoord(inta,intb){x=a;y=b;}inlineintCoord::getx(){returnx;}inlineintCoord::gety(){retur
8、,可以用下面两种格式将成员函数声明为类的内联函数:①隐式声明直接将函数声明在类内部。3.1.2类的构成例如:classCoord{public:voidsetCoord(inta,intb){x=a;y=b;}intgetx(){returnx;}intgety(){retruny;}private:intx,y;};3.1.2类的构成例3.1成员函数和数据成员的定义#includeclassTdate{public:voidSet(intm,intd,inty){mon
9、th=m;day=d;year=y;}intIsLeapYear(){return(year%4==0&&year%100!=0)
10、
11、(year%400==0);}voidPrint(){cout<12、一般形式是:inline返回类型类名::成员函数名(参数表){//函数体}3.1.2类的构成例如上面的例子改为显式声明可变成如下形式:classCoord{public:voidsetCoord(int,int);intgetx();intgety();private:intx,y;};inlinevoidCoord::setCoord(inta,intb){x=a;y=b;}inlineintCoord::getx(){returnx;}inlineintCoord::gety(){retur
12、一般形式是:inline返回类型类名::成员函数名(参数表){//函数体}3.1.2类的构成例如上面的例子改为显式声明可变成如下形式:classCoord{public:voidsetCoord(int,int);intgetx();intgety();private:intx,y;};inlinevoidCoord::setCoord(inta,intb){x=a;y=b;}inlineintCoord::getx(){returnx;}inlineintCoord::gety(){retur
此文档下载收益归作者所有