欢迎来到天天文库
浏览记录
ID:50082251
大小:566.50 KB
页数:153页
时间:2020-03-08
《C++面向对象程序设计 教学课件 作者 李兰_第4章.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、4.1类和对象(ClassesandObjects)4.2构造函数与析构函数(ConstructorsandDestructor)4.3常成员(ConstantMembers)4.4指向对象的指针(PointertoObject)4.5静态成员与友元(StaticMembersandFriend)4.6常见编程错误(CommonProgrammingErrors)本章小结(ChapterSummary)习题4(Exercises4)4.1.1类与抽象数据类型(ClassandAbstractDataTypes)抽象即忽略一个问题中与当前事物无关的方面,将注意力放在与当前事物有关的方面
2、。它把一类事务的属性抽象出来,同时封装了该类事务可以提供的操作。本章我们来具体学习类这种抽象数据类型的定义以及相关的一些重要概念。4.1类和对象(ClassesandObjects)4.1.2类的声明和定义(ClassesDeclarationsandDefinitions)1.从结构体到类C++兼容C语言的结构体类型(struct),但又与C语言中的结构体类型有所不同。例如:structStud{chargender;intage;}2.类的定义类定义的语法格式为classclass_name{//Member_list};【例4-1】类定义举例。classPerson{
3、public:voidwalk(){}voidwork(){}voiddisp();private:stringname;unsignedage;};4.1.3类的函数成员的实现(ClassesMemberFunctions)1.使用域限定符“::”从例4-1的Person类中我们看到,函数成员disp没有函数体,只有函数声明部分。在类外定义函数成员的语法格式为return_typeclassname::functionname(formalparameter){//functionbody}套用此格式函数成员disp可以这样来实现:voidPerson::di
4、sp(){cout<<"此人姓名为:"<5、disp();p2.disp();p3.disp();此时p1、p2、p3这3个对象分别调用共享的函数成员disp。4.1.5类的访问属性(AccessControlsinClasses)前面已经提到过封装的概念,即把数据和函数包含在一个类类型中。1.private和publicprivate即私有的,被用来隐藏类中的数据成员和函数成员;public即公有的,用来公开类中的数据成员和函数成员。例如:classPerson{public:voidwalk(){}voidwork(){}voiddisp();private:stringname;unsignedage;}6、;classPerson{private:stringname;unsignedage;public:voidwalk(){}voidwork(){}voiddisp();};classPerson{public:voidwalk(){}voidwork(){}private:stringname;unsignedage;public:voiddisp();};2.类域类域(classscope)即类的作用域,类似于我们以前学过的函数域、块域等。例如:Personp1;p1.name="zhangsan";//Error!cout<7、isp();//OK!3.get和set函数类成员的访问属性实现了面向对象程序设计的封装的概念以及信息隐藏的原理。【例4-2】带有get、set函数的Person类。classPerson{public:voidset_name(stringnew_name);voidset_age(unsignednew_age);stringget_name(){returnname;}unsignedget_age(){returnage;}voiddi
5、disp();p2.disp();p3.disp();此时p1、p2、p3这3个对象分别调用共享的函数成员disp。4.1.5类的访问属性(AccessControlsinClasses)前面已经提到过封装的概念,即把数据和函数包含在一个类类型中。1.private和publicprivate即私有的,被用来隐藏类中的数据成员和函数成员;public即公有的,用来公开类中的数据成员和函数成员。例如:classPerson{public:voidwalk(){}voidwork(){}voiddisp();private:stringname;unsignedage;}
6、;classPerson{private:stringname;unsignedage;public:voidwalk(){}voidwork(){}voiddisp();};classPerson{public:voidwalk(){}voidwork(){}private:stringname;unsignedage;public:voiddisp();};2.类域类域(classscope)即类的作用域,类似于我们以前学过的函数域、块域等。例如:Personp1;p1.name="zhangsan";//Error!cout<7、isp();//OK!3.get和set函数类成员的访问属性实现了面向对象程序设计的封装的概念以及信息隐藏的原理。【例4-2】带有get、set函数的Person类。classPerson{public:voidset_name(stringnew_name);voidset_age(unsignednew_age);stringget_name(){returnname;}unsignedget_age(){returnage;}voiddi
7、isp();//OK!3.get和set函数类成员的访问属性实现了面向对象程序设计的封装的概念以及信息隐藏的原理。【例4-2】带有get、set函数的Person类。classPerson{public:voidset_name(stringnew_name);voidset_age(unsignednew_age);stringget_name(){returnname;}unsignedget_age(){returnage;}voiddi
此文档下载收益归作者所有