ECMA 372-2005 C++ CLI Language Specification《C++ CLI语言规范 第1版》.pdf
《ECMA 372-2005 C++ CLI Language Specification《C++ CLI语言规范 第1版》.pdf》由会员分享,可在线阅读,更多相关《ECMA 372-2005 C++ CLI Language Specification《C++ CLI语言规范 第1版》.pdf(304页珍藏版)》请在麦多课文档分享上搜索。
1、 ECMA-372 1stEdition / December 2005 C+/CLI Language Specification Standard ECMA-372 1stEdition / December 2005 C+/CLI Language Specification Ecma International Rue du Rhne 114 CH-1204 Geneva T/F: +41 22 849 6000/01 www.ecma-international.org . Table of Contents iii Table of Contents Introduction.xi
2、i 1. Scope. 1 2. Conformance . 2 3. Normative references 3 4. Definitions 4 5. Notational conventions 7 6. Acronyms and abbreviations . 8 7. General description. 9 8. Language overview 10 8.1 Getting started . 10 8.2 Types . 10 8.2.1 Fundamental types and the CLI 12 8.2.2 Conversions 13 8.2.3 CLI ar
3、ray types . 13 8.2.4 Type system unification 13 8.2.5 Pointers, handles, and null 14 8.3 Parameters . 16 8.4 Automatic memory management. 17 8.5 Expressions 18 8.6 Statements 19 8.7 Delegates . 19 8.8 Native and ref classes 20 8.8.1 Literal fields 20 8.8.2 Initonly fields 21 8.8.3 Functions. 21 8.8.
4、4 Properties 21 8.8.5 Events 23 8.8.6 Static operators . 24 8.8.7 Instance constructors. 25 8.8.8 Destructors and finalizers . 25 8.8.9 Static constructors. 26 8.8.10 Inheritance 27 8.9 Value classes . 28 8.10 Interfaces . 28 8.11 Enums 30 8.12 Namespaces and assemblies 30 8.13 Versioning . 31 8.14
5、Attributes . 32 8.15 Generics. 33 8.15.1 Creating and consuming generics . 33 8.15.2 Constraints 34 8.15.3 Generic functions 35 9. Lexical structure 37 9.1 Tokens . 37 9.1.1 Identifiers 37 9.1.2 Keywords 38 C+/CLI Language Specification iv 9.1.3 Literals 39 9.1.4 Operators and punctuators 40 10. Bas
6、ic concepts 41 10.1 Assemblies. 41 10.2 Application entry point 41 10.3 Importing types from assemblies. 41 10.4 Reserved names . 42 10.5 Members 43 10.5.1 Value class members. 43 10.5.2 Delegate members. 43 10.6 Member access 43 10.6.1 Declared accessibility . 43 10.7 Name lookup . 44 11. Preproces
7、sor 48 11.1 Conditional inclusion. 48 11.2 Predefined macro names 48 12. Types 49 12.1 Value types 50 12.1.1 Fundamental types 50 12.2 Class types. 51 12.2.1 Value classes. 51 12.2.2 Ref classes. 51 12.2.3 Interface classes 51 12.2.4 Delegate types. 51 12.3 Declarator types. 52 12.3.1 Raw types 52 1
8、2.3.2 Pointer types . 52 12.3.3 Handle types . 52 12.3.4 Null type . 53 12.3.5 Reference types. 53 12.3.6 Interior pointers. 54 12.3.7 Pinning pointers 55 12.3.8 Native arrays. 57 12.4 Top-level type visibility 57 13. Variables 58 13.1 gc-lvalues. 58 13.1.1 Standard conversions 58 13.1.2 Expressions
9、 . 59 13.1.3 Reference initializers 60 13.1.4 Temporary objects 60 13.2 File-scope and namespace-scope variables . 60 13.3 Direct initialization 60 14. Conversions 62 14.1 Conversion sequences . 62 14.2 Standard conversions. 62 14.2.1 Handle conversions. 62 14.2.2 Pointer conversions. 63 14.2.3 Lval
10、ue conversions . 64 14.2.4 Integral promotions. 64 14.2.5 String literal conversions 65 14.2.6 Boxing conversions. 66 Table of Contents v 14.3 Implicit conversions 66 14.3.1 Implicit constant expression conversions . 66 14.3.2 User-defined implicit conversions 66 14.3.3 Boolean Equivalence 66 14.4 E
11、xplicit conversions 67 14.5 User-defined conversions 67 14.5.1 Constructors 67 14.5.2 Explicit conversion functions . 67 14.5.3 Static conversion functions. 67 14.6 Parameter array conversions 67 14.7 Naming conventions 68 15. Expressions 70 15.1 Function members . 70 15.2 Primary expressions. 71 15
12、.3 Postfix expressions 71 15.3.1 Subscripting and indexed access. 72 15.3.2 Function call . 72 15.3.3 Explicit type conversion (functional notation) 72 15.3.4 Class member access. 73 15.3.5 Increment and decrement 73 15.3.6 Dynamic cast. 73 15.3.7 Type identification 74 15.3.8 Static cast 75 15.3.9
13、Reinterpret cast . 76 15.3.10 Const cast 76 15.3.11 Safe cast 76 15.4 Unary expressions . 77 15.4.1 Unary operators. 77 15.4.2 Increment and decrement 79 15.4.3 Sizeof 80 15.4.4 New. 80 15.4.5 Delete 80 15.4.6 The gcnew operator. 81 15.4.7 The throw expression 81 15.5 Explicit type conversion (cast
14、notation) 81 15.6 Additive operators . 82 15.6.1 Delegate combination . 82 15.6.2 Delegate removal 82 15.6.3 String concatenation 82 15.7 Shift operators . 83 15.8 Relational operators. 83 15.8.1 Handle equality operators . 83 15.8.2 Delegate equality operators. 84 15.8.3 String equality. 85 15.9 Lo
15、gical AND operator. 85 15.10 Logical OR operator 85 15.11 Conditional operator 85 15.12 Assignment operators 85 15.13 Constant expressions . 86 15.14 Property and event rewrite rules 86 16. Statements 89 16.1 Selection statements 89 16.1.1 The switch statement. 89 C+/CLI Language Specification vi 16
16、.2 Iteration statements 89 16.2.1 The for each statement 89 16.3 Jump statements. 91 16.3.1 The break statement 91 16.3.2 The continue statement . 91 16.3.3 The return statement . 91 16.3.4 The goto statement 91 16.4 The try block 91 17. Namespaces 93 17.1 Reserved namespaces 93 18. Functions 94 18.
17、1 -style variable-argument lists. 94 18.2 Name lookup . 94 18.3 Overload resolution . 94 18.4 Parameter arrays 94 18.5 Importing native functions. 96 18.6 Non-member functions 97 18.7 Attributes . 97 19. Classes and members 98 19.1 Class definitions 98 19.1.1 Class modifiers . 99 19.2 Reserved membe
18、r names. 100 19.2.1 Member names reserved for properties. 100 19.2.2 Member names reserved for events 101 19.2.3 Member names reserved for functions 101 19.2.4 Possible collision with reserved property and event names 102 19.3 Data members 103 19.4 Functions . 103 19.4.1 Override functions 104 19.4.
19、2 Sealed function modifier. 107 19.4.3 Abstract function modifier 107 19.4.4 New function modifier 108 19.5 Properties. 109 19.5.1 Qualified names of properties and events. 110 19.5.2 Static and instance properties 111 19.5.3 Accessor functions 111 19.5.4 Virtual, sealed, abstract, and override acce
20、ssor functions 113 19.5.5 Trivial scalar properties 114 19.6 Events 115 19.6.1 Static and instance events . 116 19.6.2 Accessor functions 116 19.6.3 Virtual, sealed, abstract, and override accessor functions 117 19.6.4 Trivial events 117 19.6.5 Event invocation . 117 19.7 Static operators 117 19.7.1
21、 Homogenizing the candidate overload set 119 19.7.2 Operators on handles. 119 19.7.3 Increment and decrement operators 120 19.7.4 Operator synthesis. 123 19.7.5 Naming conventions . 123 19.8 Non-static operators. 126 19.9 Instance constructors . 126 19.10 Static constructors . 127 Table of Contents
22、vii 19.11 Literal fields. 128 19.12 Initonly fields. 129 19.12.1 Using static initonly fields for constants. 130 19.12.2 Versioning of literal fields and static initonly fields. 130 19.13 Destructors and finalizers 130 19.13.1 Destructors 131 19.13.2 Finalizers. 131 20. Native classes . 133 20.1 Fun
23、ctions . 133 20.2 Properties. 133 20.3 Static operators 133 20.4 Delegates . 133 20.5 Friends . 133 20.6 Events 134 20.7 Finalizer. 134 20.8 Initonly and literal fields 134 20.9 Static constructors . 134 21. Ref classes 135 21.1 Ref class definitions 135 21.1.1 Ref class base specification 135 21.2
24、Ref class members. 135 21.2.1 Variable initializers. 135 21.3 Functions . 136 21.4 Properties. 136 21.5 Events 136 21.6 Static operators 137 21.7 Non-static operators. 137 21.8 Instance constructors . 137 21.9 Static constructor. 137 21.10 Literal fields. 137 21.11 Initonly fields. 137 21.12 Destruc
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
10000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ECMA3722005CCLILANGUAGESPECIFICATIONCCLI 语言 规范 PDF

链接地址:http://www.mydoc123.com/p-704803.html