当前位置:七道奇文章资讯编程技术VC/C++编程
日期:2011-03-22 13:56:00  来源:本站整理

C++/CLI解析之基于仓库的对象与跟踪引用[VC/C++编程]

赞助商链接



  本文“C++/CLI解析之基于仓库的对象与跟踪引用[VC/C++编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

在托管堆上分配对象实例,仿佛是利用托管扩大C++、C#、J#、VB.NET程序员的唯一办法,而利用本地C++的程序员,不但可以在堆上分配内存,乃至更惯于利用基于仓库的对象实例.

目前回想一下从前定义的Point引用类,再来看一下以下变量定义:

Point p1, p2(3,4);

从本地C++的角度来说,p1与p2应为基于仓库的引用类Point实例,哪怕是从普通性的角度来看,它们也是.P1由默许的构造函数初始化,而p2由承受x与y坐标的构造函数初始化.从实现上来看,Point是自包含范例的(也就是说,它不包含任何指针或句柄),但是,作为一个引用类的实例,它仍处于CLI运行时的掌控之下,且在必要时,会被垃圾回收--正因为此,所以不能定义一个引用类的静态或全局实例.

同时,也不能将sizeof利用于指明是引用类实例的表达式,因为sizeof是在编译时举行计算的,而Point对象的大小要直到运行时才能肯定;但是,可将sizeof利用于句柄,因为它的大小在编译时就已经肯定了.

别的,还不能定义一个基于仓库的CLI数组实例.

跟踪引用

本地C++可通过&来定义一个对象的别名,比方,对肆意本地类N,可编写以下代码:

N n1;
N& n2 = n1;

引用必须在定义时举行初始化,且在整个生命期中,它们都锁定于引用同一对象,也就是说,它的值不会改变.引用一个引用类的实例与引用一个本地类基本一致,只不过语法差别罢了.

在程序履行期间,引用类的实例会在内存中"移动",所以,需求对它们举行跟踪,而本地指针与引用却不可以胜任这项工作(特别指不能对一个引用类的实例利用取地址符&),因此,C++/CLI对应地供应了句柄及用于跟踪的引用--在此简称为跟踪引用(Tracking References),比方,你可以定义一个跟踪引用p3,以追踪对象p2:


  以上是“C++/CLI解析之基于仓库的对象与跟踪引用[VC/C++编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:

  • win8 Could not load type System.ServiceModel.Activation.HttpModule 错误办理筹划
  • 利用Javascript实现网页水印(非图片水印)
  • 在Windows7中将U盘用BitLocker加密的操作步骤
  • rs.open和conn.execute辨别
  • 不用注册机破解Photoshop CS5 每次都需求重新输入注册码
  • CSS网页筹划25个实用小本领
  • CSS3教程:利用@font-face实现本性化字体
  • 办理Windows提醒0xc000009内存错误的办法
  • PHP的chm手册打不开怎么办
  • 关于SQL中CTE(公用表表达式)(Common Table Expression)的总结
  • mysql #1062 –Duplicate entry ''1'' for key ''PRIMARY''
  • SQL Server中利用Linkserver衔接Oracle的办法
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .