版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、上海大学 雷电第2章 从C到C+上海大学 雷电HardwareOS (Windows)Win32 API/MFC/.NET库Application+PC机的编程上海大学 雷电开发环境1.Visual C+C/C+, STL, ATL, MFC, .NET2. Visual C# .NET 类库3. Visual C+ 6.0项目文件.h,.c, .cpp, .dsp, .dsw, .res, .rc.exe, .dll上海大学 雷电一个简单的C+程序2.1 名字空间提供了一种组织相关类的方式,是一种逻辑组合,而不是物理组合,防止名字冲突.例: namespace MyNS void func(
2、). 1)作用域分辨符 : MyNS:func();2) using namespace MyNS;func();2.2 C+输入输出标准C+库定义的类在std名空间下using namespace std;cinx ; coutxx;练习:计算平均值(参考例2-9)例: 12 13 14 平均值:13标识符上海大学 雷电2.3 文件是输入输出流,但设备是磁盘文件使用方法1.包含头文件 fstream2.创建文件对象:读文件对象类型: ifstream写文件对象类型: ofstream打开文件:open(文件名)3.读写文件数据 4. 关闭文件close()Ex2_3,Example 2.3
3、(p24) :income.cpp作业:p26 2.3.2课后练习 2上海大学 雷电小结服务和客户服务是被动的(函数、数据类型(类)、对象)客户是主动的(调用函数、定义变量、实例化对象)服务客户是相对的。消息的传递:通过对象成员函数的调用名空间的概念名空间定义了一组标识的集合(这样做有语意可防止命名冲突)。使用其中的标识 的方法:1)名空间名:标识符2)using namespace名空间名;对象的应用类对象; 系统已创建的对象:cin,cout使用全局标识符可以使用前缀: 但前无名空间上海大学 雷电2.4 若干重要的C+特性2.4.2 常量const int size=10;int Asiz
4、e; ?const int size=10;int Asize;区别: #define size 10int Asize;const int *p = A;p+; /ok*p= 100; / X变量声明向左看上海大学 雷电2.4.4 enum例2:enum Day sun,mon,tue,wed,thu,fri,sat ;enum Day workday;workday = mon;结果:workday 为 1; 例1:enum FALSE, TRUE; int ok=TRUE;结果:ok 为 1; 例3:enum Color red=0 xff0000, gre=0 x00ff00, blu
5、e=0 x0000ff; 每个枚举符的值是常量(不是变量),且是整数。各枚举符的值依次递增1,除非指定其值,第0个枚举符值没有指定则为0。用途:定义一组整型常量目的: 改善标识符常量的可读性一般格式:enum 枚举类型名 标识符常量1=整数1, 标识符常量2=整数2,.;Ex2_4上海大学 雷电2.4.5 变量可在需要时声明int sum=0;for( int i=1;ib;if( 15 b 5 ) /没有意义的编程cout b 5;上海大学 雷电2.4.6 结构体还可包含函数.Ex2_2 Pointstruct int num; char name20; int age; stu1,stu2
6、, *pstu;struct Student int num; char name20; int age; stu1,stu2, *pstu;与定义基本数据类型变量类似1一般方法 2.同时定义 3.类型名匿名struct Student int num; char name20; int age;struct Student student ;Student students6 ;Student *pstu;Student stu1,stu2 ;struct Student int num; char name20; int age; int getAge()return age;上海大学 雷
7、电2.5 string 类型该类型的变量是对象头文件:lenthc_str= + += != = = str;if( str = leidian ) Xcoutn;int pn;/error!double *p=new double100;delete p;用new 动态分配的内存,具有全局的生命周期,使用完后要用delete 销毁所分配的内存。数组PP指针变量动态内存区练习:p53:1.-6.内存内存int P6;int* P;P=new int6;上海大学 雷电对象的可见性,生命期全局变量可见性,生命期:全局局部变量( auto对象)可见性: 内自动对象生命期: : 内static变量生命
8、期:全局堆对象生命期:全局“不可见”(无标识符),只能通过指针或引用变量访问。Ex P51.16填空练习:int * getDatas( int n ) _; for( int i=0;ib; ai = s*b ; return a;int main(int argc, char* argv) const int N=3; _=getDatas(N); for( int i=0;i N ;i+ ) coutpiendl; delete _ ; return 0;输入 2 4 6 输出 2 8 18上海大学 雷电内存泄漏动态分配和释放内存的功能是 C/C+ 编程的最强大功能之一,但最大的长处也可
9、能成为最大的弱点。C/C+ 应用程序即是如此,在这些应用程序中,内存处理问题属于最常见的错误。最难捉摸也最难检测到的错误之一是内存泄漏,即未能正确释放以前分配的内存的错误。只发生一次的小的内存泄漏可能不会被注意,但泄漏大量内存的程序或泄漏日益增多的程序可能会表现出各种征兆:从性能不良(并且逐渐降低)到内存完全用尽。更糟的是,泄漏的程序可能会用掉太多内存,以致另一个程序失败,而使用户无从查找问题的真正根源。此外,即使无害的内存泄漏也可能是其他问题的征兆。Example 2.7.1:elephant.cpp上海大学 雷电函数小结模块内部数据与外部数据的传递0。全局变量,常量1。返回1)值2)地址3
10、)引用2。参数变量 1)值2)地址3)引用注意:返回的对象生命期一般设计方法:1) 返回应用数据。2)返回错误代码,应用数据通过参数表传入传出。上海大学 雷电2.8 例外处理抛出例外 throw 捕捉例外 try - catchint f( int a,int b) if(b=0)throw “er:分母是0”; return a/b;void g( )try coutf(1,0)endl; catch( char *e) couteendl;规则:try,catch成对使用。一旦执行throw后,程序跳转到离它最近的匹配的catch块执行,若无由系统处理(一般是终止程序)。可以从很深的调用栈中返回.Ex2_7异常处理-适用于逻辑上可能出现的错误断言(assert)-适用于逻辑上不可能的状态(见以后章节)上海大学 雷电C+的异常处理机制的优点:1. 可以从很深的调用栈中返回.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025版影视作品版权转让与改编合同4篇
- 二零二五年度山塘综合整治承包合同4篇
- 2025年马戏团突发事件应对与处理合同4篇
- 2025年度大理石石材行业知识产权保护与合作合同4篇
- 二零二五年重型货车买卖合同示范文本3篇
- 二零二五年度豪华车型租赁代售服务合同4篇
- 二零二五年度人工智能教育平台建设与运营合同8篇
- 2025年度玫瑰花种植户联合社合作协议4篇
- 二零二五版酒店旅游纪念品开发投资协议3篇
- 2025年度农用拖拉机出口流程及报关手续规范合同
- 2024电子商务平台用户隐私保护协议3篇
- 安徽省芜湖市2023-2024学年高一上学期期末考试 英语 含答案
- 电力工程施工安全风险评估与防控
- 医学教程 常见体表肿瘤与肿块课件
- 内分泌系统异常与虚劳病关系
- 智联招聘在线测评题
- DB3418T 008-2019 宣纸润墨性感官评判方法
- 【魔镜洞察】2024药食同源保健品滋补品行业分析报告
- 生猪屠宰兽医卫生检验人员理论考试题及答案
- 钢筋桁架楼承板施工方案
- 2024年驻村第一书记工作总结干货3篇
评论
0/150
提交评论