- 1、本文档共29页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
工程化程序设计教学课件作者VC++.NETceac第10章托管C++课件.ppt
工程化程序设计(Visual C++.NET) 第10章 使用托管C++进行.NET编辑 第10章 使用托管C++进行.NET编辑 知识点及技能点 了解托管代码的定义。 理解_gc数组。 理解值类型。 理解_boxed与拆箱_unboxed。 理解托管接口。 主要内容 10.1 概 述 10.2 托管类型 10.3 为现有应用程序添加C++托管扩展 10.4 处理异常 重点和难点 讨论 本章小结 作业及练习 10.1 概述 10.2 托管类型 _gc数组 托管指针类型 字符串 值类型 垃圾收集类型(引用类型) 封箱(boxed)与拆箱(unboxed) 托管接口 属性 10.3 为现有应用程序添加C++托管扩展 10.4 处理异常 使用托管扩展引发异常 使用托管扩展的 try/catch 块 使用托管扩展的 try/catch 块 使用托管扩展的 try/catch 块 捕捉非托管 C++ 类型 托管扩展和_finally关键字 托管扩展和_finally关键字 托管扩展和_finally关键字 重点和难点 讨论 托管C++代码能帮用户解决什么问题?使用托管代码有什么好处? 本章小结 作业及练习 * 中国高等职业技术教育研究会 CEAC信息化培训认证管理办公室 * 国家信息化计算机教育认证 高等职业教育电子信息类专业 “双证课程”培养方案配套演示文稿 中国高等职业技术教育研究会 CEAC信息化培训认证管理办公室 课程描述: 网络的出现与最近几年的飞速发展,几乎改变了计算机领域的方方面面。因此,计算机语言的发展也不得不考虑网络应用问题,托管C++语言就是在这种大的环境背景下产生的。 其设计思想受如下几个方面的影响: 企业级应用。 C++编程思想。 与非托管的C++代码无缝兼容性。 C++扩展是一组帮助Visual C++开发人员编写.NET框架应用程序的C++语言扩展。托管扩展允许在同一个应用程序中混合使用传统的非托管C++代码与托管C++代码。用托管扩展编写的新应用程序可以利用非托管代码功能和新的托管代码功能。使用托管扩展可以轻松地将现有组件包装为.NET框架组件,在与.NET框架集成的同时保留现有代码中的投资。 托管扩展是下列开发方案的最佳选择: 1)将非托管C++应用程序快速移植到.NET框架。 2)从与.NET 框架兼容的语言访问C++组件。 3)从非托管代码访问.NET框架类。 4)托管和非托管代码在一个可执行文件中 托管类型是C++托管扩展的一个强大、万能的功能。除了C++类型的标准功能外,.NET框架和VC++ 编译器还为托管类型提供了新功能。这些功能包括自动垃圾回收、与其他语言(如VB和VC#)的交互操作及可扩展的元数据。 使用 C++ 托管扩展,可以通过使用_gc 关键字或通过包含托管类型来声明_gc数组。由于_gc 数组是从托管堆分配的 , 因此与标准数组(非托管数组)相比,这些数组在声明和用法上有附加的条件和功能。下面的示例声明和实例化一个简单的_gc整数数组: //gc.arrays.cpp //compile with:/clr #usingmscorlib.dll void main() { int MyIntArray _gc[]=new int _gc[100]; } 在托管应用程序中,指针可以是两种类型: 1.非托管指针 传统的 C++ 指针,是从标准 C++ 堆指向非托管内存块的指针。 2._gc指针 一种可用于托管应用程序的新指针类型,是从公共语言运行库堆指向托管内存块的指针。自动垃圾回收即是在该堆上执行的。 在标准 C++ 应用程序中,字符串由 ASCII 字符组成。而托管字符串都是UNICODE类型,所以托管应用程序无法处理标准ASCII字符串。 C++ 托管扩展解决了此问题,它允许在不进行类型转换的情况下,将字符串赋值给 System::String 类型的变量。 String *s1=”a string literal”; String *s2=L”a wide string literal”; 托管扩展支持一种新的字符串类型(以S为前缀),该类型具有 String*类型,并且比C++ 字符串的性能好。 String *s3=S”a wide string literal”; 许多程序员对不能在栈上创建碎片收集类实例时感到不适应。在传统的C++ 中,在栈上创建对象有很多优点: 1)对象在离开区域时会被析构。 2)栈上分配比堆上分配的消耗要小。 3)如果分配并释放大量生存期短的对
您可能关注的文档
最近下载
- 烽火网管ANM2000地操作和5516下GPON型ONU业务开通介绍.docx VIP
- PON组网及原理06-AN5516-01 GPON开通配置方法.ppt VIP
- AN5516-01-GPON开通配置方法.ppt VIP
- 烽火AN5516-01 GPON开通流程.ppt VIP
- 高中数学竞赛(强基计划)历年真题练习 9 排列组合二项式定理与概率统计综合 (学生版+解析版).pdf VIP
- 中兴OLT链路聚合配置.ppt VIP
- 2023核电厂核安全文化同行评估导则.doc
- OLT设备测试1.doc VIP
- 高中数学竞赛(强基计划)历年真题练习 4 向量 (学生版+解析版).pdf VIP
- 【高中数学竞赛真题•强基计划真题考前适应性训练】 专题06 不等式 真题专项训练(全国竞赛+强基计划专用)解析版.docx VIP
文档评论(0)