亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

C++ CLR里的System::String和Std::String在使用和實現上有什么區別?各位有什么建議?

C++ CLR里的System::String和Std::String在使用和實現上有什么區別?各位有什么建議?

江戶川亂折騰 2019-08-21 13:04:13
Std::String是C++標準庫字符串類型,System::String是CLRC++中的類型,C#和CLRC++程序里都可以使用System::String。Std::String的好處是顯然的,它是標準C++的一部分,其他系統比如Linux上也可以用Std::String.但是,如果我的程序只需要在Windows上運行,不需要在其他系統譬如Linux系統上運行,那么我是用System::String還是Std::String呢?照理說,微軟既然在Std之外另搞了一個System::String,這個字符串類型比起標準String,也應該有其優點,到底有什么優點呢?除了C#也能用外,比起Std::String,有沒有實際上的好處呢?
查看完整描述

2 回答

?
DIEA

TA貢獻1820條經驗 獲得超2個贊

根本就是兩回事啊。System::String是托管類,資源在托管堆里,功能是CLR提供的。std::string是本地類,資源在本地堆里,功能是C++runtime提供的。不是微軟在std外面搞了一個自己的類,微軟做C++/CLI就是為了銜接.net和C++,于是兩個地方的東西都能用。但兩者是不能直接替換的,互相之間是需要轉換的。
至于你說不管linux平臺該用哪個,其實C++/CLI到現在都是windows獨占,你就算想在linux上用也不行。
最后你說編譯出錯的問題,那是因為你的寫法在C++里通不過。C++里是需要include頭文件的。
建議:沒學過C++的話不要趟C++/CLI這趟渾水
                            
查看完整回答
反對 回復 2019-08-21
?
智慧大石

TA貢獻1946條經驗 獲得超3個贊

想當年MFC的時候微軟也封裝過一些高級對象比如CString,好處就是更加適用于MFC的工作環境。這樣的封裝更多是提供現成的算法比如Qt也有QString,可以split,join簡化代碼。標準庫就跟他的名字一樣,它的工作環境與平臺無關,可以用于windows,linux,macOS。而c#和CLIc++是微軟的庫,基于Windows開發的。
1.實際好處就是封裝了更多現成方法處理字符串。2.使用命名空間之后不用聲明作用域。3.寫入輸出流用<<操作符。
                            
查看完整回答
反對 回復 2019-08-21
  • 2 回答
  • 0 關注
  • 317 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號