C++/CLI语言的属性探索

c++/cli快速入门 在此示例中,我们将说明如何创建类和用户定义的类型。要创建托管类,您要做的就是在类定义的前面加上保护修饰符,然后加上“ref”,从而:private:public:MyClass()要创建本机类,您只需按照自己的方式创建即可。现在,您可能想知道C ++ / CLI中的析构函数,如果它们仍然表现相同,答案是肯定的,则析构函数(确定性)的使用方式仍与在C ++中使用的方式相同。但是,在为您Dispose()透明实现接口之后,编译器会将析构函数调用转换为调用。 阅读详情

软件 > 开发者网络 > 微软开发专栏 > Visual Studio.net专栏 > VC.net > 正文

  本文展示了欧洲计算机开发商协会正在发展的C++/CLI(一种不同的C++语言,它方便开发人员在微软的.NET框架下更容易地开发程序)语言在C++语言上的扩展。写这篇文章的目的并不是要建议标准C++包括这部分扩展,也不是对C++/CLI的认可,而只是在探讨C++/CLI语言在这一领域的发展方向。

  
一、基础知识

  C++/CLI中的属性是类似与各种数据成员(有各种操作限制)的可操作实体,但是这种操作往往被转化为调用存取函数(这主要是"getter"和"setter"函数)。例如:

struct Demo1 {
 property int Val { // 一个非常简单的整型、分级属性。
  int get() const {
   ++Demo1::access_count;
   return this->value;
 }
 void set(int v) {
  ++Demo1::access_count;
  this->value = v;
 }
}
private:
 int value;
 static unsigned long access_count;
};
int main() {
 Demo1 d;
 d.Val = 3; // 调用"set"操作函数。
 return d.Val; //调用"get"函数。
}

  存取函数的名字必须是get 或者是 set函数,两者之中的任何一个都可以被省略,但绝不能两者全省略。省略一个存取函数导致只存在一个读属性或只存在一个写属性。属性的地址是无法获取的,然而,存取函数作 为成员函数理所当然地可以被用来产生指向成员的指针常量(例如:&Demo1::Val::set)。

  属性可以使用关键字"virtual"进行声明,这意味者存取操作函数是虚函数,纯虚属性函数也是可能存在的,例如:

struct VirtualProp {
 virtual property int Val = 0 {
  int get() const; // 纯虚函数.
  virtual void set(int v); //纯虚函数,这里关键词"virtual"是多余的。
 }
 // ...
};

  上述例子显示了通常情况下遇到的一些简单的、非静态的、分层次的属性实例。C++/CLI文档包含了大量的概念变化,下文将进行解释。

全文阅读:C++/CLI语言的属性探索

C++/CLI实例:CLI封装与跨语言互操作实战 本文还有配套的精品资源,点击获取 简介:C++/CLI是微软.NET框架下的编程语言,它提供了C++与.NET Framework的交互能力。本"C++/CLI实例.zip"文件包含了一系列关于C++/CLI的实践案例,旨在帮助初学者理解如何使用C++/CLI进行.NET开发,以及如何进行CLI封装,使得C++代码能够被C#等其他.NET语言调用。通过实践任务,学生将掌握C... 阅读详情

相关推荐

C++/CLI :类的属性

属性C++/CLI的类成员,它类似于成员变量,但实际上不是。其主要区别在于,字段名引用了某个存储单元,而属性名则是调用某个函数。属性拥有访问属性的set()和get()函数。当我们使用属性名时,实际上在调用该函数的get()或set()函数。如果一个属性仅提供了get()函数,则它是只读属性;如果一个属性仅提供set()函数,则它是只写属性。 类可以有2种不同的属性:标量属性和索引属性。标量属...

三余丨无梦生 1999

实例解析C++/CLI之开篇

实例解析C++/CLI之开篇           C++/CLI可以说是标准C++语言一种新的“方言”,它是Microsoft为充分利用CLI(Common Language Infrastructure)平台而开发出来的。那么,它在语言方面有何新颖独到之处呢,下面,就让我们一起开始奇妙的C++/CLI语言之旅(文中所有示例代码,均以Visual Studio.NET 2005 Pro

谢启东的专栏 6018

C++/CLI编程-属性property的封装实现

C++/CLIC++算法进行封装时可以有两种方案: 对需要封装的C++类进行CLI封装,包含类型为对应C++类型指针的成员字段mImpl,对非基本类型不使用property封装,而使用函数封装,见上文; 如2.2.2节所属,C++/CLI中定义不依赖C++类型的Wrapper类,而在相关的算法封装中实现好C++CLI类型的转换即可,如C++ class Line和CLI ref class LineWrapper中都有pt0、pt1字段,两class没有直接关系。

哈市雪花的博客 1138

C++/CLI学习入门(九):类的属性(转…

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 属性C++/CLI的类 成员,它类似于成员变量,但实际上不是。其主要区别在于,字段名引用了某个存储单元,而属性名则是调用某个函数。属性拥有访问属性的set()

dieqms的专栏 1044

C++/CLI封装

创建c++/CLI 库 创建过程主要包括三个步骤:核心C++项目,C++/CLI库,以及使用C++/CLI库的c#项目。这种方法用法应用的代表之一:游戏引擎,可以用c#编写脚本,例如Unity3D或者Xenko。但是游戏引擎会在短时间内处理大量数据,用c#编写并不是最好的办法,因此用c++编写核心功能,通过c++/CLI封装一层提供给c#. 环境配置 如图所示,修改VS安装,选择指示部分即“c++桌面安装”----“C++/CLI support”。 创建c++核心项目 打开VS创建新项目,C++项目,

lzz555517的博客 2624

C++/CLI简介(什么是C++/CLI) -------C++/CLI 编程系列一

要知道C++/CLI是什么,首先知道什么是CLI。 一、CLI简介 CLI:(Common Language Infrastructure,通用语言框架)提供了一套可执行代码和它所运行需要的虚拟执行环境的规范。更通俗的我们可以说它是一个虚拟平台,是操作系统和应用程序间的一层抽象。微软的.NET的基础CLR(Common Language Runtime,通用语言运行时)就是CLI

亿言 1万+

C++/CLI 中创建WPF项目的方法探索

`C++/CLI`下创建WPF项目的方法`C++/CLI`下创建WPF项目的方法 C++/CLI下创建WPF项目的方法 Visual C++中创建WPF项目的方法 由于WPF不仅仅支持C#/VB开发,还支持其他语言,比如: C++、F#等开发,于是大白我最近花了点时间摸索了一下,本文主要介绍C++/CLI下创建WPF项目的方法。 我使用的开发环境是: Win10 x64 + Visual Studio 2019 (16.6.1版本)。 今天我们需要使用C++/CLI,算是C++的一个子集吧。 要能正常使用

极客学长Bravo | 突破信息差 | 副业生财有术 4509

C++/CLI

C++/CLI C++/CLICLI:Common Language Infrastructure)是一门用来代替C++托管扩展(下文使用MC++指代)新的语言规范。重新简化了C++托管扩展的语法,提供了更好的代码可读性。和微软.NET的其他语言一样,微软向ECMA提交了C++/CLI的标准。C++/CLI

mathew的专栏 2960

C++/CLI编程知识点小记

本篇博文并非详细的C++/CLI教程,仅是博主就学习和实践总结的部分知识点记录。第一次接触C++/CLI是2017年了,用C++编写底层库,C++/CLI编写wrapper层,在C#项目中进行调用,开发应用。

哈市雪花的博客 2065

C++/CLI:第一流的CLI语言

C++/CLI:第一流的CLI语言 出处: 天极网 责任编辑:方舟 1. 简介  本文并不是为了奉承C++/CLI的辉煌,也不是为了贬低其它如C#或者VB.NET等语言,相反,这只是一个非官方的、以一个喜欢这种语言的非微软雇员身份来论证C++/CLI有它的自己的唯一的角色,可作为第一流的.NET编程语言。  一个不断在新闻组和技术论坛上出现的问题是,当象C#和VB.NET这样的语言更适合于这种

Mobidogs Blog 1770

C#调用C++/CLI(托管C++)

C++/CLI(Common Language Infrastructure,通用语言框架)可以简单的认为就是.NET运行的托管C++C++/CLI 数组 C++/CLI数组只能用array&amp;lt;&amp;gt;声明 C++/CLI数组只能是句柄类型 声明方式如下: //存储值类型数据的数组 array&amp;lt;double&amp;gt;^ p; //存储句柄类型(类只能是句柄)数据的数组 array&amp;...

hustlei的专栏 3928

C++/CLI中的默认属性访问

目前版本的VC2005测试版中,default关键字不仅用于指定类级别的索引器,而且也用于访问默认属性。但是奇怪的是,默认属性的原名不能访问了,也就是说,如果要把下面的代码段从托管C++移植到VC2005附带的C++/CLI,不仅需要更改指针的类型,而且要把属性的名称更改为default://[System::Reflection::DefaultMemberAttribute("Fields")

蒋晟的专栏 3968

C++/CLI 总结

在Windows上,除非我们必须得用C++来写界面,否则我会选择避免,避免学习和使用MFC。替代的方案是用C#来做界面,然后用C++/CLI来连接C#和Native C++。那么问题来了,C++/CLI是何方神圣?  百度上对于C++/CLI是这么说的——“C++/CLI是静态C++对象模型到CLI的动态组件对象编程模型的捆绑。简而言之就是如何用C++在·NET中编程,而不是C#或Visual B...

weixin_29130507的博客 1494

C++/CLI基本语法和最佳实践

详细剖析C++/CLI中的六大核心类型,总结C++/CLI实现跨语言调用既有库的最佳实践。

helolizi710的博客 3775

c++/cli(一)——简介

什么是c++/cliC++/CLICLI:CommonLanguageInfrastructure)在计算机语言中是一门由微软设计,用来代替C++托管扩展(Managed C++,下文使用MC++指代)的语言。这门语言在兼容原有的C++标准的同时,重新简化了托管代码扩展的语法,提供了更好的代码可读性。 C++/CLI是一门独立的语言(比如新的关键字),而不是像C++托管扩展一样是C++的超集。(C++托管扩展有一些不标准的关键字如__gc和__value)。所以,C++/CLI对于这些语法有...

duanxinyao的专栏 3469

C++C++/CLI

       CLI 指的是通用语言结构,一种支持动态组件编程模型的多重结构,在许多情况下,这代表了一个与C++对象模型完全颠倒了的模式,一个时实的软件层,有效的执行了系统,在底层操作系统与程序之间运行,操作底层的设备受到一定限制,操作执行程序中的活动类型及与程序相关联的下部结构得到了支持,反斜杠(/) 代表C++CLI的捆绑。  C++/CLI : 它是静态C++对象模型到CLI的动态组件

luqinghua的专栏 6208

(原創) C++/CLI绝非垃圾语言!! (.NET) (C++/CLI) (C/C++)

C++/CLI和C#真的是『既生瑜,何生亮』,既然有了从C++进化而来的C#,为什么Microsoft还要弄个C++/CLI呢?C++/CLI真的是垃圾语言吗?首先谈谈我接触C++/CLI的过程,我的背景是从VFP,VB6,ASP然后到C#,4年前接触C#后,由于C#精简且功能强大,使我认为C#是个完美的程序语言,也应该会是我最后一个程序语言。这学期去修C++,之所以想修C++,并不是想用C++开...

weixin_34297300的博客 1591
上一篇: 编写通用的ASP防SQL注入攻击程序
下一篇: 完美的C++:C++/CLI
ark1111
博客等级 码龄24年 29粉丝 224原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值