「測不准原理」在計算機領域的體現

2021-04-28 13:58:20 字數 1153 閱讀 3480

此貼讓我有此感覺:量子物理上講「測不准原理」,這是普世通理,計算機領域也有此現像。你想要速度麼?就無法精確。

c++的指標問題,永遠也說不完。stl容器與智慧型指標的不合理搭配,導致的對「值」語義(可安全複製,本體和複本生存期內無構造,無析構)的破壞,容器對像foreach時引發的異常行為。

而c#做為一種poop(pure oop),使用「引用」加「堆對像」,使用gc來管理生存期,不再受制於{},消滅了c++的類似問題。但是效率又是乙個問題。

gc的意義非同一般啊。

從 c++ 託管擴充套件到 visual c++ 2008,值型別的語義已發生的更改。

不再存在值類預設建構函式

託管擴充套件和新語法之間的值型別的乙個差異是移除了對預設建構函式的支援。這是因為在執行過程的某些情況下,clr 可以在不呼叫關聯的預設建構函式的情況下,建立值型別的例項。也就是說,在託管擴充套件下嘗試支援值型別內的預設建構函式實際上不能得到保證。在不能得到保證的情況下,最好完全刪除支援,而不是使其在應用程式中變得不確定。

這至少不會像最初看起來那樣糟糕。這是因為值型別的每個物件會自動被賦予零值(即,每個型別都初始化為其預設值)。結果是,永不取消本地例項的成員定義。從這種意義上來說,不能定義常用的預設建構函式根本不是一種損失——事實上,如果由 clr 執行將更為有效。

問題出現在託管擴充套件使用者定義非常用的預設建構函式時。此時,沒有到新語法的對映。建構函式內的**需要遷移到乙個命名初始化方法中,然後需要由使用者來顯式呼叫該方法。

否則,新語法內值型別物件的宣告不會更改。這樣做的缺點是:由於下列原因,值型別對本機型別的包裝具有以下缺陷:

我們希望在值型別(而不是引用型別)中包裝小的本機類,以避免雙堆分配:本機堆儲存本機型別,而 clr 堆儲存託管包裝。在值型別內包裝本機類使您可以避免託管堆,但它無法自動**本機堆記憶體。引用型別是可在其中包裝非常用本機類的唯一可行的託管型別。

計算機組成原理小測

1.你了解馮諾依曼機嗎?你是否可以大概描述馮諾依曼機的基本組成和工作原理?馮諾依曼機相對於之前的計算機有什麼重要改進?答 了解,馮諾依曼機由運算器,控制器,儲存器,輸入裝置,輸出裝置組成,工作原理 採用二進位制,程式指令和資料一起儲存。按程式編排的順序,一步一步地取出指令,自動地完成指令規定的操作,...

計算機的工作原理

半個世紀以來,計算機已發展成為乙個龐大的家族,儘管各種型別的效能 結構 應用等方面存在著差別,但是它們的基本組成結構卻是相同的。現在我們所使用的計算機硬體系統的結構一直沿用了由美籍著名數學家馮 諾依曼提出的模型,它由運算器 控制器 儲存器 輸入裝置 輸出裝置五大功能部件組成。隨著資訊科技的發展,各種...

計算機的工作原理

計算機能做什麼 這是學習c語言的分支 在學習如何用c語言程式設計之前,最好先了解一下計算機的工作原理,這些知識有助於你理解用c語言 編寫程式和執行c程式時所發生的事情之間有什麼聯絡 現代的計算機由多種部件構成。處理單元 cpu 承擔絕大部分的運算工作 機在取內在 m 是儲存程式和檔案的工作區 而永久...