cpp-05-C++中的类和结构体.ppt

上传人:豆**** 文档编号:23999782 上传时间:2022-07-03 格式:PPT 页数:25 大小:751.50KB
返回 下载 相关 举报
cpp-05-C++中的类和结构体.ppt_第1页
第1页 / 共25页
cpp-05-C++中的类和结构体.ppt_第2页
第2页 / 共25页
点击查看更多>>
资源描述

《cpp-05-C++中的类和结构体.ppt》由会员分享,可在线阅读,更多相关《cpp-05-C++中的类和结构体.ppt(25页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、结构化程序设计方法程序=(算法)+(数据结构)主函数主函数函数函数1函数函数2函数函数3函数函数1-1函数函数1-2函数函数1-3函数函数2-1函数函数3-1函数函数3-2数据数据1数据数据2数据数据3面向对象方法的基础程序=(算法+数据结构)在面向对象中,算法与数据结构被捆绑成一个类对象:(算法+数据结构) 程序=(对象+对象+)程序就是许多对象在计算机中相继表现自己程序就是许多对象在计算机中相继表现自己对象又是一个个程序实体对象又是一个个程序实体构成程序的对象lC+C+封装的基本单元封装的基本单元( (数据数据+ +函数函数) )l面向对象程序设计的基础面向对象程序设计的基础l类的成员有访

2、问级别的控制类的成员有访问级别的控制 (public、protected、private)class Personpublic: void setValue(char *p, int _age, int _weight) strcpy( this-name, p); age = _age; weight = _weight; /函数成员函数成员 void info() cout name “ ” age “ ” weight endl; private: char name16; /数据成员数据成员 int age; /数据成员数据成员 int weight; /数据成员数据成员; /注意:类

3、的定义最后要加注意:类的定义最后要加”;”int main(int argc, char *argv) Person man; man.setValue(“Pitter”, 23, 70); man.info(); return 0;l声明和定义声明和定义l如何调用如何调用? ?( (对象、引用、指针对象、引用、指针) )l成员函数重载成员函数重载. .l在类定义的内部,成员函数可以访问任何其在类定义的内部,成员函数可以访问任何其它成员函数和成员变量它成员函数和成员变量. .l隐含隐含thisthis指针指针lpublic 可以在外部通过对象或指针、引用访问可以在外部通过对象或指针、引用访问l

4、private 不可以在外部通过对象或指针、引用访问不可以在外部通过对象或指针、引用访问lprotected 不可以在外部通过对象或指针、引用访问不可以在外部通过对象或指针、引用访问l类是对象结构的说明类是对象结构的说明, , 而类的变量,就是对象。而类的变量,就是对象。 class A; A obj;此处定义了此处定义了A A类的一个对象,对象名为类的一个对象,对象名为objobj,是在栈,是在栈中分配的内存。中分配的内存。l对于类的数据成员,类的每个对象都有一份独立的对于类的数据成员,类的每个对象都有一份独立的拷贝;而对于类的函数成员,所有变量都共享一份拷贝;而对于类的函数成员,所有变量都

5、共享一份成员函数的代码。成员函数的代码。 l类的封装的概念首先是,数据与算法类的封装的概念首先是,数据与算法( (操作操作) )结合,构成一个不可分割的整体结合,构成一个不可分割的整体( (对象对象) )。l其次是,在这个整体生其次是,在这个整体生些成员是保护它们些成员是保护它们被有效地屏蔽,以防外界的干扰和误操作。被有效地屏蔽,以防外界的干扰和误操作。l另一些成员是公共的,它们作为接口提供给另一些成员是公共的,它们作为接口提供给外界使用。而对该对象的描述即是创建用户外界使用。而对该对象的描述即是创建用户定义的类型,对定义的类型,对C+C+来说,就是类的实现机来说,就是类的实现机制。制。l数据

6、数据 + + 函数函数 + + 访问控制访问控制l屏蔽变化屏蔽变化 ( (设计模式中的依赖倒置原则设计模式中的依赖倒置原则: : 高层和高层和底层都要依赖接口底层都要依赖接口( (或协议或协议) )互相之间不互相之间不要有依赖要有依赖) )l类的作用域,将成员函数定义在类的声类的作用域,将成员函数定义在类的声明外面明外面l一个类的所有成员位于这个类的作用域内一个类的所有成员位于这个类的作用域内, , 访问它们必须要通过此类或此类的对象访问它们必须要通过此类或此类的对象l类的作用域是类定义和类成员的定义范围类的作用域是类定义和类成员的定义范围l在类的作用域内,一个类的成员函数对同一在类的作用域内

7、,一个类的成员函数对同一类的数据成员具有无限制的访问权类的数据成员具有无限制的访问权lC+C+中类与结构的唯一区别中类与结构的唯一区别: :l类类(class)(class)定义中默认情况下的成员访定义中默认情况下的成员访问级别是问级别是privateprivate。l结构结构(struct)(struct)定义中默认情况下的成员定义中默认情况下的成员访问级别是访问级别是publicpublic。struct STimeint hour;int min;int sec;class CTimeint hour;int min;int sec;int main(int argc, char * a

8、rgv)STime stm;CTime ctm;stm.hour = 12; /OK 默认默认publicstm.min = 13; /OK 默认默认publicstm.sec = 14; /OK 默认默认publicctm.hour = 12; /ERROR 默认默认privatectm.min = 13; /ERROR 默认默认privatectm.sec = 14; /ERROR 默认默认privatereturn 0;l可以在类的内部定义另一个类可以在类的内部定义另一个类或结构体或结构体l通过外层类名的作用域操作符通过外层类名的作用域操作符 “:” “:” 引用内部类引用内部类( (后

9、面后面STLSTL的迭代器会遇到这的迭代器会遇到这种情况种情况) )l可以将外层类理解为一个命名空间可以将外层类理解为一个命名空间l嵌套类也收访问级别限制嵌套类也收访问级别限制#include using namespace std;class Init public: class app public: void set_app_val(int x); int get_app_val(); private: int app_val; ;private: int Init_val;void Init:app:set_app_val(int x)app_val = x;int Init:app:

10、get_app_val()return app_val;int main() Init:app obj1;/嵌套类的对象嵌套类的对象 obj1.set_app_val(12); cout obj1.get_app_val() endl; return 0;class Sample /定义类 /;void func(int Sample) /函数形参隐藏了类名 class Sample a; /定义一个对象要用到类名 Sample+; /形参的算术操作 / 如果一个类型名隐藏了一个非类型名,如果一个类型名隐藏了一个非类型名,则用一般作用域规则即可。则用一般作用域规则即可。int s=0; /全局

11、变量void func( ) class s /; /类s隐藏了全局变量s s a; /定义一个类对象 :s=3; /引用全局变量 /class s作用域结束 int g=s; /用全局变量s给变量g初始化 共享库的构成共享库的构成 一个商业性类库包括一个类定义和成一个商业性类库包括一个类定义和成员函数定义。员函数定义。C+C+程序结构程序结构 一个一个C+C+应用程序是一个程序工程。应用程序是一个程序工程。一个一个c+c+程序工程文件中,应该组合程序工程文件中,应该组合下面这些程序下面这些程序文件: main.cpp classcppsfunctioncpps 其中包含主函数的源文件应该是下面的其中包含主函数的源文件应该是下面的形式:形式:#includes#includes#include”自定义类库头文件”s#include”自定义函数头文件”s函数原型s全局数据定义svoid main() / 函数定义s 课堂练习课堂练习l定义一个大米仓库类定义一个大米仓库类, ,数据成员包括数据成员包括品种品种, ,入库价格入库价格, ,出库价格出库价格, ,库存库存, ,收入收入, ,成员函数是进货和卖出成员函数是进货和卖出, ,和打印成员和打印成员的函数的函数l成员变量l成员函数l访问控制l对象和类的联系和区别?l类中访问控制关键字有哪几个, 分别有什么意义?l封装的优点是?

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

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁