最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C++超集C++/CLI模塊的基本語法

 更新時(shí)間:2022年07月04日 11:07:02   作者:天方  
這篇文章介紹了C++超集C++/CLI模塊的基本語法,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

托管對(duì)象的創(chuàng)建和引用

前文中我們已經(jīng)演示過創(chuàng)建一個(gè)托管對(duì)象,對(duì)于如下C#代碼:

System.Object?x =?new?System.Object();

其在C++/CLI中的等價(jià)代碼如下:

System::Object^ x =?gcnew?System::Object();

和傳統(tǒng)的C++創(chuàng)建的語法比較下,

P* x =?new?P();

我們不難發(fā)現(xiàn),對(duì)于托管對(duì)象,主要引入了如下兩個(gè)語法:

  • 用gcnew代替new實(shí)現(xiàn)托管對(duì)象的創(chuàng)建

  • 用^代替*實(shí)現(xiàn)托管對(duì)象的指針

這種方式創(chuàng)建的對(duì)象是可以直接被CLR支持的,可以在C#中使用。托管對(duì)象指針使用的方式和傳統(tǒng)的對(duì)象指針還是比較類似的,直接使用->即可:

System::Object^ x = gcnew System::Object();
auto str = x->ToString();

另外,C++/CLI也有一種類似于C++的對(duì)托管對(duì)象的引用的語法:

System::Object^ x = gcnew System::Object();
System::Object% y = *x;
auto str = y.ToString();

由于這種方式在C#里沒有對(duì)應(yīng)的語法,用起來感覺怪怪的,也不方便于其它.net語言集成。

托管類型的定義

我們也可以自定義托管類型,在CLR中,托管類型是分為引用類型(class)和值類型(struct)的,在C++/CLI中的分別定義方式如下:

引用類型:

public ref class MyClass
{
};

值類型:

public value class MyClass
{
};

在ISO C++中類定義中加上了ref或value標(biāo)記為托管類型,還算比較容易使用。

枚舉

枚舉的定義和C++11的enum class一樣,它像數(shù)字那樣可以同時(shí)應(yīng)用于托管類型和非托管類型。

public?enum?class?SomeColors?{?Red,?Yellow,?Blue?};

或者更精確的表示:

public enum class SomeColors : char { Red, Yellow, Blue };

數(shù)組

C++/CLI中新增了array<T> ^的方式定義數(shù)組。

array<int> ^a =?gcnew?array<int>(100) { 1, 2, 3 };

或者使用它的完整版:

cli::array<int> ^a =?gcnew?cli::array<int> {1, 2, 3};

不定參數(shù)

對(duì)于C#中的不定參數(shù)的語法:

void?foo(params?string[] args)

在C++/CLI中對(duì)應(yīng)的版本為:

void?foo(...?array<String^>^?args)

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • C語言解決字符串中插入和刪除某段字符串問題

    C語言解決字符串中插入和刪除某段字符串問題

    這篇文章主要介紹了C語言解決字符串中插入和刪除某段字符串問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • C++實(shí)現(xiàn)LeetCode(85.最大矩形)

    C++實(shí)現(xiàn)LeetCode(85.最大矩形)

    這篇文章主要介紹了C++實(shí)現(xiàn)LeetCode(85.最大矩形),本篇文章通過簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-07-07
  • 解析bitmap處理海量數(shù)據(jù)及其實(shí)現(xiàn)方法分析

    解析bitmap處理海量數(shù)據(jù)及其實(shí)現(xiàn)方法分析

    本篇文章是對(duì)bitmap處理海量數(shù)據(jù)及其實(shí)現(xiàn)的方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-05-05
  • C++內(nèi)存模型和名稱空間詳解

    C++內(nèi)存模型和名稱空間詳解

    這篇文章主要給大家介紹了關(guān)于C/C++中的內(nèi)存模型和名稱空間詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用c/c++具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起看看吧
    2021-09-09
  • 深入理解char *a與char a[]的區(qū)別

    深入理解char *a與char a[]的區(qū)別

    很多人可能或多或少知道char *a與char a[]的一些區(qū)別,但如果詳細(xì)的說出來卻不知如何說去,下面這篇文章就給大家詳細(xì)介紹了關(guān)于C語言中char *a與char a[]的區(qū)別,有需要的朋友們可以參考借鑒,下面來一起學(xué)習(xí)學(xué)習(xí)吧。
    2016-12-12
  • Qt實(shí)現(xiàn)高準(zhǔn)確率的語音識(shí)別

    Qt實(shí)現(xiàn)高準(zhǔn)確率的語音識(shí)別

    Vosk是一個(gè)開源的語音識(shí)別工具,支持中英文及多種語言,具備離線識(shí)別能力,且不依賴互聯(lián)網(wǎng),本文就來聊聊如何使用Vosk API在C++中進(jìn)行中英文識(shí)別吧
    2024-11-11
  • c語言詳解動(dòng)態(tài)內(nèi)存分配及常見錯(cuò)誤的解決

    c語言詳解動(dòng)態(tài)內(nèi)存分配及常見錯(cuò)誤的解決

    給數(shù)組分配多大的內(nèi)存空間?你是否和初學(xué)C時(shí)的我一樣,有過這樣的疑問。這一期就來聊一聊動(dòng)態(tài)內(nèi)存的分配,讀完這篇文章,你可能對(duì)內(nèi)存的分配有一個(gè)更好的理解
    2022-04-04
  • C語言實(shí)現(xiàn)數(shù)獨(dú)游戲的求解

    C語言實(shí)現(xiàn)數(shù)獨(dú)游戲的求解

    這篇文章主要為大家詳細(xì)介紹了C語言實(shí)現(xiàn)數(shù)獨(dú)游戲的求解,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-01-01
  • 詳解如何將c語言文件打包成exe可執(zhí)行程序

    詳解如何將c語言文件打包成exe可執(zhí)行程序

    這篇文章主要介紹了詳解如何將c語言文件打包成exe可執(zhí)行程序,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-02-02
  • 用C語言實(shí)現(xiàn)猜數(shù)字

    用C語言實(shí)現(xiàn)猜數(shù)字

    這篇文章主要為大家詳細(xì)介紹了用C語言實(shí)現(xiàn)猜數(shù)字,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-06-06

最新評(píng)論

望城县| 舒兰市| 清镇市| 钦州市| 建湖县| 凤凰县| 长武县| 开化县| 章丘市| 开江县| 贵州省| 隆德县| 大同市| 探索| 阿鲁科尔沁旗| 太原市| 抚松县| 北京市| 昌都县| 水城县| 比如县| 松潘县| 衡山县| 会昌县| 连江县| 长兴县| 钟祥市| 满城县| 旺苍县| 邵武市| 平利县| 荥经县| 五原县| 平塘县| 扬州市| 祥云县| 宁都县| 昌江| 渭源县| 郁南县| 关岭|