设为首页  
联系我们  
加入收藏  
网页制作 冲浪宝典 图形图像 操作系统 软件教学 编程开发 认证考试 安全技术 站长专区 文学驿站 娱乐天地 游戏天地 办公软件
文章搜索
您的位置: 首页 >> 文章首页 >> 编程开发 >> 其他开发语言 >> 体验下一代微软平台开发Visual Studio 2005(2)
精品推荐
其他开发语言点击TOP10
·数字小键盘指法练习
·用C语言编通讯录程序(初学者级别的)
·Modem 常用AT指令集
·单片机模拟I2C总线及24C02(I2C EEPROM)读写实例(源代码)
·C++经典电子书下载
·Thinking in C++ 简体中文第二版
·debug和release的区别
·error LNK2001: unresolved external symbol __ftol2 错误解决
·C库函数手册
·一个简单的C语言编译器
编程开发点击TOP10
·数字小键盘指法练习
·ASP.NET 程序中常用的三十三种代码
·用C语言编通讯录程序(初学者级别的)
·我写的Java学生成绩管理系统源代码
·CHK文件恢复工具
·Modem 常用AT指令集
·java笔试题
·异常java.sql.SQLException: Io exception:The Network Adapter could not establish connection
·单片机模拟I2C总线及24C02(I2C EEPROM)读写实例(源代码)
·C++经典电子书下载
精选专题

体验下一代微软平台开发Visual Studio 2005(2)

作者: 来源:网络文章 时间:2005-12-17 19:15:02

体验下一代微软平台开发Visual Studio 2005(2)(1)

今天我们一起来详细探索一下VC++2005中C++/CLI为我带来了哪些新的特性。
首先,C++/CLI引入了一些新的数据类型关键字:
ref class/ref strUCt、value class/value struct、interface class/interface struct、enum class/enum struct,在C++/CLI中

class和struct不具有C#的语意,而是仍然保持在C++中的区别,即默认的访问级别不同。在C++/CLI中,ref class/ref struct具有C#中

class的语意,而value class/value struct具有struct的语意。相应的interface class/interface struct和enum class/enum struct分别

类同于C#中interface和enum的语意。在这里,以ref class为例,虽然它们是两个单词,但它们共同组成了一个关键字,也就是说,在

C++/CLI中,关键字中可能会包含空格,就是要把多个单词合起来理解成是一个关键字,而不能把它们孤立开。
在C++/CLI中,关键字还分为上下文敏感和上下文不敏感的,前面提到的关键字都是上下文不敏感的,即它们无论出现在哪里,都表示是

关键字,不能用作标识符。而上下文敏感的关键字则只在它们应当出现的地方才作为关键字,否则将不具备任何特殊的含义,包括可以作为

标识符使用。
新加入的上下文敏感数据类型关键字有:property、delegate和event,它们基本上都对等于C#中的相应关键字。
除了数据类据关键字,C++/CLI还引入其它一些新的关键字:abstract、new、override、sealed、generic、where、finally、gcnew、

initonly、literal、nullptr,它们与它们在C#中的含义基本一致,稍后我会对其中部分C#中没有关键字作介绍。
C++/CLI中还引入了两个新的运算符,^和%,它们用于支持C++/CLI中新的“名柄”的概念。除此以外,C++/CLI还引入了一些新语言构造

,它们是以库的型式来实现的,不作为关键字出现。
在C++/CLI中,由于引入了托管堆,所以,内存分配方法除了C++原有的Native的栈分配和堆分配,又多出一种在托管堆上的分配,配合

这一理念的语法特性就包括了句柄,^和%运算符,gcnew等关键字。
下面是一个代码片断,举例说明了在C++/CLI中使用托管代码的情况:
ref class R
{
private:
 int m_value;
public:
 property int Value
 {
  int get()
  {
   return m_value;
  }
  void set(int value)
  {
   m_value = value;
  }
 }
};
 
int main()
{
 R ^ r = gcnew R();
 r->Value = 6;
}
这里演示了ref class即托管类的用法,还有新的property关键字以及托管对象分配的方法。可以这样理解^符号,它就是一种托管的指

针,相当于Managed C++中的__gc指针,用它可以指向一个托管的对象,语法上用起来与*一致,只不过得用gcnew而不是new才能返回一个^类

型的指针(称为句柄)。与此同时,新增的%运算符其实就对应了C++原来的&运算符,只不过它是用于托管对象的。而新增的nullptr关键字则相当于在C#中的null关键盘,用于表示一个空的托管对象引用。从这个程序中可以看出C++/CLI从语法层面上要比Managed C++好看好用得多。

共2页 9 7 [1] [28 :>

体验下一代微软平台开发Visual Studio 2005(2) 相关文章:
体验下一代微软平台开发Visual Studio 2005(2) 相关软件:
特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
转载请注明来源:http://www.xgdown.com