Time of Update: 2018-12-03
主要參考《Numerical Recipes in C++ 2/e》p.292~p.294 和《Simulation Modeling and Analysis 3/e》p.465~p.466。Box 和 Muller 在 1958 年給出了由均勻分布的隨機變數產生常態分佈的隨機變數的演算法。設 U1, U2 是區間 (0, 1) 上均勻分布的隨機變數,且相互獨立。令X1 = sqrt(-2*log(U1)) * cos(2*PI*U2);X2 = sqrt(-2*log(U1)) * sin(
Time of Update: 2018-12-03
Item 20: 用 pass-by-reference-to-const(傳 const 引用)取代 pass-by-value(傳值)作者:Scott Meyers譯者:fatalerror99 (iTePub's Nirvana)發布:http://blog.csdn.net/fatalerror99/預設情況下,C++ 以 by value(傳值)方式將 objects 傳入或傳出函數(這是一個從 C 繼承來的特性)。除非你特別指定其它方式,否則 function parameters(
Time of Update: 2018-12-03
今天遇到的麻煩是前兩天設計考慮不周詳導致的。在傳統的設計思路中,留給後期運行時可以擴充的部分通常交給資料庫的預存程序實現。例如:儲存某資料時,對資料的檢查。獲得某資料時,對資料的格式化等等。我一開始設計時也是如此考慮的,在設計資料儲存表時,考慮了儲存、檢查、擷取記錄時可以選擇的額外處理:CREATE TABLE IF NOT EXISTS
Time of Update: 2018-12-03
Item 17: 在 standalone statements(獨立語句)中將 new 出來的 objects(對象)存入 smart pointers(智能指標)作者:Scott Meyers譯者:fatalerror99 (iTePub's Nirvana)發布:http://blog.csdn.net/fatalerror99/假設我們有一個函數用於取得我們的 processing priority(處理優先順序),還有第二個函數用於根據 priority(優先順序)對一個
Time of Update: 2018-12-03
Item 15: 在 resource-managing classes(資源管理類)中提供對 raw resources(裸資源)的訪問作者:Scott Meyers譯者:fatalerror99 (iTePub's Nirvana)發布:http://blog.csdn.net/fatalerror99/resource-managing classes(資源管理類)真是太棒了。他們是你防禦 resource
Time of Update: 2018-12-03
Item 9: 絕不要在 construction(構造)或 destruction(析構)期間調用 virtual functions(虛擬函數)作者:Scott Meyers譯者:fatalerror99 (iTePub's Nirvana)發布:http://blog.csdn.net/fatalerror99/我以這個概述開始:你不應該在 construction(構造)或 destruction(析構)期間調用 virtual
Time of Update: 2018-12-03
Item 7: 在 polymorphic base classes(多態基類)中將 destructors(解構函式)聲明為 virtual(虛擬)作者:Scott Meyers譯者:fatalerror99 (iTePub's Nirvana)發布:http://blog.csdn.net/fatalerror99/有很多方法取得時間,所以有必要建立一個 TimeKeeper base class(基類),並為不同的計時方法建立 derived classes(衍生類別):class
Time of Update: 2018-12-03
Item 8: 防止因為 exceptions(異常)而離開 destructors(解構函式)作者:Scott Meyers譯者:fatalerror99 (iTePub's Nirvana)發布:http://blog.csdn.net/fatalerror99/C++ 並不禁止從 destructors(解構函式)中引發 exceptions(異常),但是它堅決地阻止這樣的實踐。至於有什麼好的理由,考慮:class Widget {public: ... ~Widget() { ...
Time of Update: 2018-12-03
Chapter 3. Resource Management(資源管理)作者:Scott Meyers譯者:fatalerror99 (iTePub's Nirvana)發布:http://blog.csdn.net/fatalerror99/resource(資源)是這樣一些東西:一旦你不再使用它,你需要把它還給系統。如果你不這樣做,有百害而無一利。在 C++ 程式中,最普遍使用的資源是 dynamically allocated
Time of Update: 2018-12-03
Item 18: 使 interfaces(介面)易於正確使用,而難以錯誤使用作者:Scott Meyers譯者:fatalerror99 (iTePub's Nirvana)發布:http://blog.csdn.net/fatalerror99/C++ 被淹沒於 interfaces(介面)中。function interfaces(函數介面)、class interfaces(類介面)、template interfaces(模板介面)。每一個
Time of Update: 2018-12-03
這幾日接接觸SystemC,有些感觸:1. SystemC 是一套C++ Class Library,將C++擴充成了一門硬體描述語言(HDL)。我感覺,學習SystemC至少要懂兩樣東西:C++、一門硬體描述語言。我熟悉C++,並且熟悉Verilog,因此學SystemC能舉一反三、觸類旁通。2. SystemC 使用了C++的很多特性:多重繼承、虛擬繼承、模板、RTTI (at least for dynamic_cast)、異常處理、操作符重載。似乎沒有使用STL。3. SystemC
Time of Update: 2018-12-03
書評:《C# Primer》Joe Casad / 陳碩 譯譯註:Joe Casad是 C/C++ Users Journal 雜誌的主編(editor-in-chief)。原文發表於 CUJ Online Exclusives, March 2003,網址為:http://www.cuj.com/webonly/2003/0303/web0303a/web0303a.htm 基本資料:書名: C# Primer: A Practical Approach作者: Stanley B.
Time of Update: 2018-12-03
(點擊此處,接上篇)一個可替換方案是讓 SquareMatrixBase 儲存一個指向矩陣的值的記憶體地區的指標。而且一旦它儲存了這個指標,它同樣也可以儲存矩陣大小。最後得到的設計大致就像這樣:template<typename T>class SquareMatrixBase {protected: SquareMatrixBase(std::size_t n, T *pMem) // store matrix size and a : size(n),
Time of Update: 2018-12-03
Chapter 1. 習慣於 C++作者:Scott Meyers譯者:fatalerror99 (iTePub's Nirvana)發布:http://blog.csdn.net/fatalerror99/無論你的編程背景如何,對於 C++ 可能多少有些不習慣。這是一個有著極其豐富特性的威力強大的語言。但是在你能發揮它的威力並有效地使用這些特性之前,你必須使自己習慣於以 C++
Time of Update: 2018-12-03
Item 45: 用 member function templates(成員函數模板) 接受 "all compatible types"(“所有相容類型”)作者:Scott Meyers譯者:fatalerror99 (iTePub's Nirvana)發布:http://blog.csdn.net/fatalerror99/smart pointers(智能指標)是行為很像指標但是增加了指標沒有提供的功能的 objects。例如,Item 13 闡述了標準 auto_ptr 和 tr1::
Time of Update: 2018-12-03
Chapter 2. Constructors(建構函式),Destructors(解構函式)與 Assignment Operators(賦值運算子)作者:Scott Meyers譯者:fatalerror99 (iTePub's Nirvana)發布:http://blog.csdn.net/fatalerror99/幾乎每一個你自己寫的 class(類)都會有一個或多個 constructors(建構函式),一個 destructor(解構函式)和一個 copy assignment
Time of Update: 2018-12-03
Item 19: 視 class design(類設計)為 type design(類型設計)作者:Scott Meyers譯者:fatalerror99 (iTePub's Nirvana)發布:http://blog.csdn.net/fatalerror99/在 C++ 中,就像其它 object-oriented programming languages(物件導向程式設計語言),通過定義一個新 class(類)來定義一個新 type(類型)。作為一個 C++
Time of Update: 2018-12-03
恩,做了個俄羅斯方塊的遊戲!用Visio做介面顯示,C#程式。 左右鍵控制移動,上鍵控制旋轉,空格放下。耗時3小時完成. 感覺C# 進行visio編程基本上學的差不多了吧..木哈哈。 -------------------------又及,補充一下,就是用C#開啟一個Visio,然後操縱Visio畫出俄羅斯方塊來,並且根據鍵盤控制操縱這個俄羅斯方塊移動,旋轉,下降和消除。
Time of Update: 2018-12-03
Item 16: 成對使用的 new 和 delete 要使用相同的形式作者:Scott Meyers譯者:fatalerror99 (iTePub's Nirvana)發布:http://blog.csdn.net/fatalerror99/下面這段代碼有什麼問題?std::string *stringArray = new std::string[100];...delete stringArray;每一樣東西看起來都很正常。也為 new 搭配了一個
Time of Update: 2018-12-03
Item 14: 謹慎考慮 resource-managing classes(資源管理類)中的拷貝行為作者:Scott Meyers譯者:fatalerror99 (iTePub's Nirvana)發布:http://blog.csdn.net/fatalerror99/Item 13 介紹了作為 resource-managing classes(資源管理類)支柱的 Resource Acquisition Is Initialization (RAII) 原則,並描述了