C++类和对象知识点复习

上传人:jiups****uk12 文档编号:45504131 上传时间:2018-06-17 格式:PPT 页数:108 大小:987KB
返回 下载 相关 举报
C++类和对象知识点复习_第1页
第1页 / 共108页
C++类和对象知识点复习_第2页
第2页 / 共108页
C++类和对象知识点复习_第3页
第3页 / 共108页
C++类和对象知识点复习_第4页
第4页 / 共108页
C++类和对象知识点复习_第5页
第5页 / 共108页
点击查看更多>>
资源描述

《C++类和对象知识点复习》由会员分享,可在线阅读,更多相关《C++类和对象知识点复习(108页珍藏版)》请在金锄头文库上搜索。

1、 第3章 类和对象 3.1 类的构成3.2 成员函数的定义3.3 对象的定义和使用3.4 构造函数与析构函数3.5 对象的赋值与复制3.6 自引用指针this3.7 C+的string类3.1 类的构成3.1.1 从结构体到类3.1.2 类的构成3.1.1 从结构体到类1.结构体的扩充 例如下面声明了一个日期结构体:struct Dateint year; /年int month; /月int day; /日;C语言结构体一般格式如下 :struct 结构名数据;例3.1 有关日期结构体的例子。 #include using namespace std; struct Date /声明了一个名

2、为Date的结构体int year;int month;int day; ; int main() Date date1;date1.year=2014 ;/可以在结构体外直接访问数据yeardate1.month=3; /可以在结构体外直接访问数据monthdate1.day=1; /可以在结构体外直接访问数据daycout using namespace std; class Date /将例3.1中的结构体struct改为 类classint year; /私有数据成员int month; /私有数据成员int day; /私有数据成员 ; int main() Date date1;

3、date1.year=2014;/错误,在类外不能访问私有数据成员 year date1.month=3; /错误,在类外不能访问私有数据成员 month date1.day=1; /错误,在类外不能访问私有数据成员day cout /例3.1 有关日期结构体的例子。 using namespace std; struct Date /声明了一个名为Date的结构体int year; /公有的数据成员int month; /公有的数据成员int day; ; /公有的数据成员 int main() Date date1;date1.year=2014 ; /可以在结构体外直接访问数据 year

4、date1.month=3; /可以在结构体外直接访问数据monthdate1.day=1; /可以在结构体外直接访问数据daycout /学生类的完整程序 using namespace std; class Studentprivate:int number;float score;public:void input(int number1,float score1); /输入学生 成绩void modify(float score1); /修改学生 成绩void print(); /打印学生 成绩 ; void Student:input(int number1,float score1

5、) number=number1; score=score1; void Student:modify(float score1) score=score1; void Student:print( ) cout/例3.3-1通过对象名和对象选择符访问对象中的 成员。 using namespace std; class Datepublic:void setDate(int y,int m,int d);void showDate();private:int year; int month; int day; ; void Date:setDate(int y,int m,int d) ye

6、ar=y; month=m; day=d; void Date:showDate()cout ”操作符。例如: class Date public:int year; ;Date d, *ptr; /定义对象d和指向类Date的指针变量 ptrptr= /使ptr指向对象dcoutyear; /输出ptr指向对象中的成员yeard.year(*ptr).year 三者是等价的ptr-year(3)通过对象的引用访问对象中的成员如果为一个对象定义了一个引用,也就是为这个 对象起了一个别名。 例如: class Date public:int year;. ; Date d1; /定义类Date的

7、对象d1 Date /定义类Date的引用d2,/并用对象d1进行初始化 cout/例3.5-1 using namespace std; class Datepublic:Date(int y,int m,int d); /声明构造函数Date的原 型void showDate();private:int year; int month; int day; ; Date:Date(int y,int m,int d) /定义构造函数Date year=y; month=m; day=d; inline void Date:showDate() cout”来访问对象的成员,而不是 “.” 。

8、类名 *指针变量名=new 类名(实参表);将例3.5-1的主函数改成用这种方法来实现。 int main() Date *pdate = new Date(2014,3,1); pdate-showDate();delete pdate;return 0; 利用构造函数创建对象的另 一种方法:用指针和new来实现。说明:(1) 构造函数的名字必须与类名相同,否则编 译程序将把它当作一般的成员函数来处理。(2) 构造函数没有返回值,在声明和定义构造 函数时,是不能说明它的类型的,甚至说明为 void类型也不行。 例如上述构造函数不能写成void Date(int y,int m,int d);

9、 说明为void类型也不行(3) 与普通的成员函数一样,构造函数的函数体 可写在类体内,也可写在类体外。如例3.5-1中的类Date可以声明如下: class Date public:Date(int y,int m,int d) / 构造函数定义在类内 year=y; month=m; day=d;void showDate() cout /例3.6 using namespace std; class Datepublic:Date(int y,int m,int d); /声明构造函数的原型void showDate();private:int year; int month; int

10、day; ; Date:Date(int y,int m,int d):year(y),month(m),day(d) void Date:showDate() cout using namespace std;class D int mem1;int mem2;public:D(int i):mem1(i),mem2(mem1+1) cout using namespace std;class D int mem1;int mem2;public:D(int i):mem2(i),mem1(mem2+1) cout using namespace std; class D int mem1;

11、int mem2;public:D(int i):mem2(i),mem1(mem2+1) cout using namespace std; class D int mem2;int mem1; public:D(int i):mem2(i),mem1(mem2+1) cout/例3.7含有构造函数和析构函数的 Date类。 using namespace std; class Datepublic:Date(int y,int m,int d); / 声明构造函数Date(); / 声明析构函数void setDate(int y,int m,int d);void showDate();

12、private:int year; int month; int day; ;Date:Date(int y,int m,int d) / 定义构造函数 cout /例3.8 较完整的学生类示例。 #include using namespace std; class Studentpublic:Student(char *name1,char *stu_no1,float score1); /声明构造 函数Student(); /声明析构函数void disp(); /成员函数,用于显示数据private: char *name; char *stu_no; float score; ; /

13、姓名,学号,成绩 Student:Student(char *name1,char *stu_no1,float score1) name=new charstrlen(name1)+1;strcpy(name,name1); stu_no=new charstrlen(stu_no1)+1;strcpy(stu_no,stu_no1); score=score1; 定义构造函数Student:Student() /定义析构函数 delete name; delete stu_no; void Student:disp() cout using namespace std; class Myc

14、lasspublic:int no; ; int main() Myclass a;cout using namespace std; class Myclasspublic:char name10;int no; ; int main() Myclass a=“chen“,25;cout class Location private: int X,Y; public:void Init(int initX, int initY) X=initX; Y=initY; int GetX( ) return X; int GetY( ) return Y; ; int main( ) Location A3;A3.Init(785,980);cout /例3.10 分析下列程序的运行结果。 using namespace std; class Datepublic:Date(int y,int m,int d); /带有参数的构造函数void setDate(int y,int m,int d); void showDate(); private:int year; int month; int day; ; Date:Date(int y,int m,int d) year=y; month=m

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


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

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