Re: [問題] 無痛GUI = =?
推 embedded:想問一個問題,為什麼MS老是喜歡創C#或是一些怪怪的C語法?
→ embedded:反倒是GNU或是其他免費的都還適用正規的C/C++,但也是可達
→ embedded:相同的效果
→ embedded:我是想知道搞成managed有什麼好處? 就我看到的結果似乎
→ embedded:只有效能小降低+吃RAM
要managed就因為要做Garbage collection..
寫C/C++時..一時沒注意new出來的東西沒free掉..就會memeory leak..
他的目的就跟Java一樣..不需要explicit的delete語法..而是由GC來回收
那為什麼 Managed C++ 會多出那些奇怪的東西..
原因之一是 Managed C++ 是故意設計成同時支援 managed/unmanaged ..
例如在 Managed C++
你想使用 Point 這個class可以有三種方式產生他
Point P1 = Point();
Point *P2 = new Point();
Point ^P3 = gcnew Point();
因為 Point 是value-type的..所以你可以直接用第一種方式產生區域變數
第二種是用 unmanaged 的方式new出來..所以要記得 delete 掉..
第三種是用 managed 的方式..用gcnew出來..後面沒refernece到的話..
自然會被回收到..
為了同時支援managed/unmanged code..所以Managed C++才會變這麼醜..
所以其實不建議用C++配.NET在寫..
像C#或其他的.NET支援的語法..
都只會有一種寫法..
Point P = new Point();
個人不覺得一家公司 ``自創'' 一個語言是什麼負面的事(我指C#)..
Sun也發明了Java不是嗎??
Managed Extensions for C++
http://en.wikipedia.org/wiki/C++_Managed_Extensions
這篇有提到到一些優缺比較..
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.139.131.212
※ 編輯: cole945 來自: 220.139.131.212 (10/10 14:50)
推
10/10 16:05, , 1F
10/10 16:05, 1F
推
10/11 12:29, , 2F
10/11 12:29, 2F
→
10/11 12:31, , 3F
10/11 12:31, 3F
→
10/11 13:04, , 4F
10/11 13:04, 4F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章