Time of Update: 2018-12-03
下面對於C++中方法中參數聲明以及定義中的參數賦值為0調用問題,在實際的工作中遇到,便進行了相關的示範處理。如下查看紅色部分的差異。/////////////////////////////////////////////////////////#include <iostream>using namespace std;class T1{public: T1(){} virtual ~T1 () {}public:
Time of Update: 2018-12-03
Terminology(術語)作者:Scott Meyers譯者:fatalerror99 (iTePub's Nirvana)發布:http://blog.csdn.net/fatalerror99/這是一個所有程式員都應該瞭解的小型的 C++ vocabulary(詞彙表)。下面的術語都足夠重要,對它們的含義取得完全一致對於我們來說是完全必要的。declaration(聲明)告訴編譯器關於某物的 name(名字)和 type(類型),但它省略了某些細節。以下這些都是 declaration(
Time of Update: 2018-12-03
我們在用C#開發程式時可能想開啟我們程式以外的程式或者檔案,比如說按下按鈕播放一段音樂,那我們就可以使用下面的程式碼片段實現 private void btPlayMusic_Click(object sender, EventArgs e) { System.Diagnostics.Process process = new System.Diagnostics.Process(); string browserPath
Time of Update: 2018-12-03
在研究函數指標時發現一些問題,貼出來與大家共用。例如定義個函數指標://定義指標void (*pFunc)();//執行個體一個無參函數void printing(){//do something}pFunc =
Time of Update: 2018-12-03
1. _cdecl (1). 是C Declaration的縮寫,表示C語言預設的函數調用方法,實際上也是C++的預設的函數調用方法。 (2). 所有參數從右至左依次入棧,這些參數由調用者清除,稱為手動清棧。具體所示:調用方的函數調用->被調用函數的執行->被調用函數的結果返回->調用方清除調整堆棧。 (3).
Time of Update: 2018-12-03
1.非引用形參包括普通對象形參和指標對象形參這類形參都是在調用函數時,在棧中臨時分配一個局部副本,然後初始化,即複製實參傳遞的資料。調用函數並沒有訪問實參傳遞值本身,也因此不會修改實參傳遞的數值,即函數對這類形參所做的操作和改動僅僅是改變了局部副本的值,不會影響到實參傳遞的資料本身。非引用形參表示對應實參的局部副本,同時也意味著都需要開銷,不同的是指標形參所花的時間開銷和儲存開銷基本是固定而且很小,而普通非指標對象的開銷則需要根據對象具體大小來定。一旦函數執行結束,這些局部變數的值也就沒有了。注
Time of Update: 2018-12-03
轉:http://www.xxlinux.com/linux/dev/c/2007-10-05/10060.html自己比較懶,網上找到不錯的總結,其實我只學習了c代碼的部分。在編程的過程中,檔案的操作是一個經常用到的問題,在C++Builder中,可以使用多種方法對檔案操作,下面我就按以下幾個部分對此作詳細介紹,就是:1、基於C的檔案操作;2、基於C++的檔案操作;3、基於WINAPI的檔案操作;4、基於BCB庫的檔案操作;5、特殊檔案的操作。這次我首先寫出第一篇,以後我會陸續寫出其它部分在我
Time of Update: 2018-12-03
一.C語言基礎資料型別 (Elementary Data Type): c語言中 char, int, float, double, signed, unsigned, long, short and void// java 中的8大本資料類型和他們的長度 // byte 1 char 2 short 2 int 4 long 8 double 8 float 4 boolean 1// 在c99標準的c語言.沒有 byte 類型 沒有boolean 類型// 在c語言裡面 0表示的是假
Time of Update: 2018-12-03
Item 28: 避免返回 object 內部構件的 "handles"(“控制代碼”)作者:Scott Meyers譯者:fatalerror99 (iTePub's Nirvana)發布:http://blog.csdn.net/fatalerror99/假設你正在一個與矩形有關的應用程式上工作。每一個矩形都可以用它的左上方和右下角表示出來。為了將一個 Rectangle object 保持在較小狀態,你可能決定定義 Rectangle 地區的那些點不應該儲存在 Rectangle
Time of Update: 2018-12-03
Google 開源了很多優秀的 C++ 程式庫,本文介紹如何將其中幾個整合到一起。本文涉及的 Google 庫有:gflags - 命令列參數解析。可以完全用命令列來配置應用程式,省去設定檔。 gtest - C++ 單元測試架構 gmock - C++ 單元測試中用到的 mock glog - 日誌庫 protobuf - 高效的網路通訊協定格式 還有第三方的 libunwind 和
Time of Update: 2018-12-03
(點擊此處,接上篇)那麼該怎麼做呢?我們依然需要一個方法,既使其他人能調用 swap,又能讓我們得到更高效的 template-specific(模板專用)版本。答案很簡單。我們依然聲明一個 non-member(非成員)swap 來調用 member(成員)swap,只是不再將那個 non-member(非成員)聲明為 std::swap 的 specialization(特化)或 overloading(重載)。例如,如果我們的 Widget-related(Widget 相關)機能都在
Time of Update: 2018-12-03
Preface(前言)作者:Scott Meyers譯者:fatalerror99 (iTePub's Nirvana)發布:http://blog.csdn.net/fatalerror99/我在 1991 年寫出了 Effective C++ 的最早版本,1997 年出了第二版,我更新了一些重要的方面的素材,但是,因為我不想使熟悉本書第一版的讀者感到困惑,我盡最大可能保持了原有的結構。最早的 50 個 Item 標題中的 48
Time of Update: 2018-12-03
Item 25: 考慮支援一個 non-throwing swap(不拋異常的 swap)作者:Scott Meyers譯者:fatalerror99 (iTePub's Nirvana)發布:http://blog.csdn.net/fatalerror99/swap 是一個有趣的函數。最早作為 STL 的構件被引入,後來它成為 exception-safe programming(異常安全編程)的支柱(參見 Item 29)和壓制自賦值可能性的通用機制(參見 Item 11)。因為
Time of Update: 2018-12-03
Item 33: 避免覆蓋(hiding)“通過繼承得到的名字”作者:Scott Meyers譯者:fatalerror99 (iTePub's Nirvana)發布:http://blog.csdn.net/fatalerror99/莎士比亞有一個關於名字的說法。"What's in a name?" 他問道,"A rose by any other name would smell as
Time of Update: 2018-12-03
Item 10: 讓 assignment operators(賦值運算子)返回一個 reference to *this(引向 *this 的引用)作者:Scott Meyers譯者:fatalerror99 (iTePub's Nirvana)發布:http://blog.csdn.net/fatalerror99/關於 assignments(賦值)的一件有意思的事情是你可以把它們穿成一串:int x, y, z;x = y = z = 15;
Time of Update: 2018-12-03
Item 32: 確保 public inheritance 類比 "is-a"作者:Scott Meyers譯者:fatalerror99 (iTePub's Nirvana)發布:http://blog.csdn.net/fatalerror99/在 Some Must Watch While Some Must Sleep (W. H. Freeman and Company, 1974) 這本書中,William Dement
Time of Update: 2018-12-03
(點擊此處,接上篇)但是也許你注意到無論是 on-the-stack(在棧上)的還是 on-the-heap(在堆上)的方法,為了從 operator* 返回的每一個結果都不得不容忍一次 constructor(建構函式)的調用。也許你還記得我們最初的目標是避免這樣的 constructor(建構函式)調用。也許你認為你知道一種方法能避免除一次以外的幾乎全部的 constructor(建構函式)調用。也許下面這個實現是你做過的,一個基於返回一個引向定義在函數內部的 static
Time of Update: 2018-12-03
Item 35: 考慮可選的 virtual functions(虛擬函數)的替代方法作者:Scott Meyers譯者:fatalerror99 (iTePub's Nirvana)發布:http://blog.csdn.net/fatalerror99/現在你工作在一個視頻遊戲上,你在遊戲中為角色設計了一個 hierarchy(繼承體系)。你的遊戲中有著變化多端的惡劣環境,角色被傷害或者其它的健康狀態降低的情況並不罕見。因此你決定提供一個 member
Time of Update: 2018-12-03
Item 5: 瞭解 C++ 為你偷偷地加上和調用了什麼函數作者:Scott Meyers譯者:fatalerror99 (iTePub's Nirvana)發布:http://blog.csdn.net/fatalerror99/一個 empty class(空類)什麼時候將不再是 empty class(空類)?答案是當 C++ 搞定了它。如果你自己不聲明一個 copy constructor(拷貝建構函式),一個 copy assignment operator(拷貝賦值運算子)和一個
Time of Update: 2018-12-03
Chapter 4. Designs(設計)和 Declarations(聲明)作者:Scott Meyers譯者:fatalerror99 (iTePub's Nirvana)發布:http://blog.csdn.net/fatalerror99/軟體設計——使軟體能做你想讓它做的事情的途徑——典型情況下,從一個相當概括的想法開始,但是最終它們會變得詳細,詳細到足以進行具體的 interfaces(介面)的開發。這些 interfaces(介面)很可能在隨後被轉化為 C++