C++ with Managed Extensions

Slides:



Advertisements
Similar presentations
软件编程基础 一、程序的编辑 Java 源程序是以 Java 为后缀的简单的文本文件,可以用各种 Java 集成开发环境中的源代码编辑器来编写,也可以用其他文 本编辑工具,如 Windows 中的记事本或 DOS 中的 EDIT 软件等。 利用文字编辑器编写下列程序 public class Hello.
Advertisements

Java 程序分类 Java Application :是完整程序,需要独立的解 释器解释运行;以 “.java” 为后缀的文件,以 main() 方法作为程序入口,由 java 编译器编译生 成字节码,由 Java 解释器加载执行字节码。 Java Applet 没有 main() 方法作为程序入口,是嵌在.
第 12 章 命 名 空 间 (时间: 1 次课, 2 学时)
项目7 面向对象高级.
项目6 通用堆栈.
第 2 章 初探 C++.
Java的程式架構與基本觀念 Java語言的歷史 Java程式的開發環境 Java程式的架構 輸出與輸入物件之使用 工具使用方法介紹
第7章 C#函數與.NET Framework類別函數庫
课程概况 加入班级QQ群,便于及时沟通和资料共享。 课程教学的组成:
C#程序设计 10软件1、2班 王槐彬 计算机工程学院.
C++程序设计 王希 图书馆三楼办公室.
鄭士康 國立台灣大學 電機工程學系/電信工程研究所/ 資訊網路與多媒體研究所
C# 程式設計 第一部分 第1-4章 C# 程式設計 - 南華大學資管系.
第八章 C#高级编程.
Chapter 1 用VC++撰寫程式 Text book: Ivor Horton.
函數 授課:ANT 日期:2009/3/24.
物件導向程式設計 (Object-Oriented rogramming)
第四章 在 C# 中实现 OOP 概念.
函數(一) 自訂函數、遞迴函數 綠園.
淺談Visual C# 程式設計 國立台灣師大附中 李啟龍 Jason.
南华大学计算机学院 软件工程系 QQ讨论群:
教材 《C++程序设计》.谭浩强. 清华大学出版社 王雪晶
函數 授課:ANT 日期:2011/3/28.
第三章 C#面向对象初级编程 面向对象得程序设计越来越受到编程人员的喜爱。类和对象是面向对象程序设计中的重要概念。封装性、继承性和多态性是面向对象的特点,本章旨在全面说明C#编写面向对象程序设计的方法。
第一章 程序的基本结构. 第一章 程序的基本结构 教材及授课结构 本章目标 基本内容 扩展阅读 上机指导 应用举例 习题.
基于 C# 的 .NET Framework 程序设计
C#程序设计基础 $3 成员、变量和常量.
Object-Oriented Programming in C++ 第一章 C++的初步知识
鄭士康 國立台灣大學 電機工程學系/電信工程研究所/ 資訊網路與多媒體研究所
C#面向对象程序设计 $7 继承和多态性.
第6章 继承和接口设计 6.1 继 承 6.2 多态性 6.3 抽象类 6.4 接口 6.5 接口在集合排序中的应用.
C语言 程序设计基础与试验 刘新国、2012年秋.
鄭士康 國立台灣大學 電機工程學系/電信工程研究所/ 資訊網路與多媒體研究所
切換Dev c++顯示語言 工具->環境選項(V)->介面->language (Chinese TW)
C#程序设计基础 第二章 数据类型.
第六章 属性、索引器、委托和事件.
面向对象 程序设计语言基础 马骏
JAVA 编 程 技 术 主编 贾振华 2010年1月.
劉崇汎 崑山科技大學 電腦與通訊系 DLL的建立與引用 劉崇汎 崑山科技大學 電腦與通訊系
C++大学基础教程 第11章 多态性 北京科技大学 信息基础科学系 2019/4/8 北京科技大学.
Chapter 2 & Chapter 3.
第五章 介面/集合/泛型 注意: 本投影片僅供本書上課教師使用,非經同意請勿上網轉載或供拷貝.
C#程序设计基础 $3 成员、变量和常量.
C++语言程序设计 C++语言程序设计 第七章 类与对象 第十一组 C++语言程序设计.
C++语言程序设计 C++语言程序设计 第七章 类与对象 第十一组 C++语言程序设计.
C++语言程序设计 C++语言程序设计 第九章 类的特殊成员 第十一组 C++语言程序设计.
C++语言程序设计 C++语言程序设计 第三章 控制语句 第十一组 C++语言程序设计.
Oop8 function函式.
C++语言程序设计 C++语言程序设计 第九章 类的特殊成员 第十一组 C++语言程序设计.
物件導向程式設計 CH2.
Java程式初體驗大綱 大綱 在學程式之前及本書常用名詞解釋 Hello Java!程式 在Dos下編譯、執行程式
第11章 從C到C++語言 11-1 C++語言的基礎 11-2 C++語言的資料型態與運算子 11-3 C++語言的輸出與輸入
C++语言程序设计 C++语言程序设计 第八章 继承 C++语言程序设计.
C++程序设计 吉林大学计算机科学与技术(软件)学院.
第二章 类型、对象、运算符和表达式.
鄭士康 國立台灣大學 電機工程學系/電信工程研究所/ 資訊網路與多媒體研究所
C/C++基礎程式設計班 C++: 物件的使用、參考、重載函式 講師:林業峻 CSIE, NTU 3/28, 2015.
授课老师:龚涛 信息科学与技术学院 2016年3月 教材:《Visual C++程序员成长攻略》 《C++ Builder程序员成长攻略》
挑戰C++程式語言 ──第9章 函數.
#include <iostream.h>
方法進階及物件導向基礎 Lecturer: 楊昌樺.
C++语言程序设计 C++语言程序设计 第八章 继承 C++语言程序设计.
C++语言程序设计 C++语言程序设计 第十章 多态 第十一组 C++语言程序设计.
C++语言程序设计 C++语言程序设计 第九章 类的特殊成员 第十一组 C++语言程序设计.
JAVA 程式設計與資料結構 第三章 物件的設計.
變數與資料型態  綠園.
資料!你家住哪裏? --談指標 綠園.
輸出執行結果到螢幕上 如果要將執行結果的文字和數值都「輸出」到電腦螢幕時,程式要怎麼寫? class 類別名稱 {
鄭士康 國立台灣大學 電機工程學系/電信工程研究所/ 資訊網路與多媒體研究所
C++语言程序设计 C++语言程序设计 第二章 基本数据类型与表达式 第十一组 C++语言程序设计.
Presentation transcript:

C++ with Managed Extensions .NET 语言 C++ with Managed Extensions

C++ with Managed Extensions 微软为C++定义了一套受控扩充件(Managed Extensions) Managed C++定义了一些新关键字 __gc: 指出某个数据类型受垃圾回收机制管制。 __value: 指出某个数据类型不受垃圾回收机制管制。 __interface: 定义一个 CTS 接口类型。 __box:将 CTS 值类型转换成引用类型。 __unbox: 将装箱的 CTS 值类型转回其原来形式。 __delegate: 定义一个 CTS 委派类型。

Managed C++程序样例 例1. 用 C++ 托管扩展编写的 Hello World (HelloVC.cpp) #using <mscorlib.dll> // Allow easy reference to the System namespace classes. using namespace System; // The global function, main, is the application's entry point. void main() { // Write text to the console. Console::WriteLine(S"Hello World using Managed Extensions for C++!"); }

Managed C++程序样例 用 C++编写托管目标代码,要求原程序中包含 编译时加clr选项。 #using <mscorlib.dll> 编译时加clr选项。 在 C++ 托管扩展中,#using 指令与 #import 指令类似,用于合并类型库中的信息。 #using与 #include 指令有区别,#include 用于合并源代码而不是预生成库。 为将命名空间导入到程序中(换言之,为便于引用 System 对象而不必完全限定其路径),还需要加上下面这条语句: using namespace System;

Managed C++程序样例 在 C++ 托管扩展中,Console::WriteLine 中需要有双冒号来表示范围。双冒号用于分隔命名空间和类名称以及类名称和静态方法。 字符串前面的 S 通知编译器将其编译为 System::String*,这在托管代码中的性能要好于 C++ 字符串。 使用以下命令行指令来编译此程序: cl.exe /clr HelloVC.cpp clr 开关,为公共语言运行库编译,它按照运行库的要求告知编译器创建托管代码。 最后,运行结果可执行程序将产生以下输出: Hello World using Managed Extensions for C++!

Managed C++程序样例 例2 // A Managed C++ example #using <mscorlib.dll> __gc __interface IMath { int Factorial(int f); double SquareRoot(double s); };

Managed C++程序样例 __gc class Compute : public IMath { public: int Factorial(int f) { int i; int result = 1; for (i=2; i<=f; i++) result = result * i; return result; } ; public: double SquareRoot(double s) { return System::Math::Sqrt(s); }

Managed C++程序样例 void main(void) { Compute *c = new Compute; int v; System::Console::WriteLine( "{0} factorial: {1}", __box(v), __box(c->Factorial(v))); System::Console::WriteLine( "Square root of {0} : {1:f4}", __box(v), __box(c->SquareRoot(v))); }

Managed C++程序样例 Managed C++要求装箱必须显示进行。 Managed C++代码和UnManaged C++代码可共存于同一个进程中。 Managed C++对CLR提供了完整的支持。 C++是VS.NET中唯一能直接编译为本机代码的语言。