Time of Update: 2018-12-03
歡迎關注我的微博點擊開啟連結 此命名規則參照Google C++ 編程風格指南,雖然說規則是死的,但是按照規則總歸可以提高代碼的可讀性,使代碼共用起來更方便,對於提高個人的編碼能力有不小協助。1、總體規則
Time of Update: 2018-12-03
1、概述 虛基類是用關鍵字virtual聲明繼承的父類,即便該基類在多條鏈路上被一個子類繼承,但是該子類中只包含一個該虛基類的備份,這也是虛基類的作用所在。 正是由於虛基類的這個作用,所以在每個子類的建構函式中必須顯示的調用該虛基類的建構函式,不管該虛基類是不是直接的父類。 其次,虛基類的建構函式的調用早於其他非虛基類的建構函式的調用。 上面兩點就是虛基類的特性。2、程式碼範例
Time of Update: 2018-12-03
轉載地址:http://blog.sina.com.cn/s/blog_6ccd0a1101017zqu.html1. const的最初動機是取代前置處理器#define來進行值替代#define只做些文本替代,它既沒有類型檢查概念,也沒有類型檢查功能,所以前置處理器的值替代會產生一些問題。這些問題在C++中可以通過使用const來避免。2. C++中的const預設為內部串連(internal
Time of Update: 2018-12-03
部門最近在搞JVM上的動態語言,比如Groovy。在享受了動態語言的種種靈活之後,效能自然而然被拿出來PK。然後玩Python的同事就舊事重提,從網上找來一段Python代碼,很多Python的人都知道了,很多C++的人也知道了,它跑得很快。為了讓文章好看一點,我來編一個故事,說,有個軟體公司,正要招剛從大學畢業的C++程式員和Python程式,面試題是同一道:
Time of Update: 2018-12-03
C++很複雜——我們聽多,並且也相信這個說法。但其實它也有很簡單的地方。C++有一個樸素的思想:“簡單的問題用簡單的方法解決,複雜的問題,用複雜的方法解決。”。這句話當然不能絕對化。一個問題的複雜性,往往有多種來源,比如可以是“深度”上的困難;從這一點上,我們瞭解,證明“任何一個>=6之偶數,都可以表示成兩個奇質數之和 ”是個難題,雖然題目很短一讀明白,但它確實是一個複雜的問題,因為它是“哥德巴哈猜想”。複雜度的來源也可以是問題的“廣度”。比如給一個人做一道可口的菜是簡單的,但今天是周末,
Time of Update: 2018-12-03
白話C++[回到目錄]5.2.構建C++程式C++是典型的“編譯型”語言。對於編譯型語言,我們可以籠統地將“代碼變成程式”這個過程,稱呼為“編譯”。不過,如果細分起來,這個過程還包括了以下三個子過程:先行編譯/precompile 編譯/compile連結/link
Time of Update: 2018-12-03
[回到目錄] 白話C++ 5.3. C++項目組成首先我們知道了,寫一個C++程式,可能需要多個源檔案,比如a.cpp、b.cpp。有沒有可能只用一個源檔案呢?似乎是可以的,比如我們之前寫的“Hello world”經典版等項目,不就只有一個main.cpp嗎。其實,就算是“Hello
Time of Update: 2018-12-03
前言在公司裡維護一個網路後台服務端程式,用C++寫的,為了一些靈活性,就想整合個指令碼語言,因為lua似乎沒有什麼庫(或者是我對它比較無知),於是就選了老牌的python。確實噢,這傢伙基本什麼c/c++的庫,都有它的封裝。於是在服務端程式裡,嵌了一個python的解譯器。可惜事情沒有這麼美好,公司裡會python本來就不多,並且多數僅在入門。讓學Java的人去學習python? 有木有發現一個現象:學java的程式員們相對都比較自我封閉,基本都不愛再學門語言什麼的,愛穩定,不愛折騰(凡客體?)
Time of Update: 2018-12-03
有學友謝靈兵列一問題。有以下代碼,我刪除部分無關內容。Code:#include <iostream> using namespace std; class base { public: virtual void funb1() { cout << "funb1 base called." << endl; } void funb2() { cout <&l
Time of Update: 2018-12-03
學C還是學C++,是個不新鮮的問題。我寫這篇,是因為我沒有答案,所以非要有答案的話,不能在這裡找,我只是把我的學習C,C++的真實經曆盡量詳細地描述一下。-----------------------------------------------------------------------------------------------------------------如果我有一個兒子。如果我這個兒子他長大成人18歲了。如果他要泡妞。我會要求他多泡幾個,多談幾段戀愛,多黃掉幾段感情。如果
Time of Update: 2018-12-03
Linux之父(Linus)又罵起C++了。這兒可以看點門道(點我)。更多的還可見原貼。 一、懂一點“曆史辯證主義”還是必要的Linus罵到的某些地方,確實就是C++的弱點。比如沒有並發支援,沒有像Java等語言提供的GC機制(記憶體回收)等等。Linus的意思是,C++既然是基於C,既然要走高端,怎麼可以沒有這些功能呢?這一點,我覺得Linus這人也難免“揣著明白裝胡塗了”。C++之父1979年開始搞Cpre,最迫切的需求是引入class,也就是要往“物件導向”走出一步。你說那陣的電腦軟硬體
Time of Update: 2018-12-03
1. 問題提出:C++ RTTI缺乏一些運行時資訊,無法根據對象名直接建立對象。所以MFC為了實現序列化,從頭構造了自己的RTTI資訊,並定義了一整套宏。具體可以參考MFC源代中一下類和宏的實現:CRuntimeClass, CObject, DECLARE_DYNAMIC, IMPLEMENT_DYNAMIC2. 需求:個人正在寫一個做整合測試的工具,有一個設定檔,用於指定哪些CASE需要被測試到,內容大致如下:<ut> <case name="case1"/>
Time of Update: 2018-12-03
http://www.codeproject.com/bitmap/ImageStone.aspImageStone是一套功能強大的C++影像處理庫,它可以在多個平台之間移植。功能包括:讀寫影像檔(JPG,GIF,PNG,TIFF,TGA...),顯示,柱狀圖分析,undo/redo支援,超過100種預定義的特效等。裡面有全部的源碼和詳細的協助文檔加9個例子程式,其中example 008是一個比較完善的影像處理程式。
Time of Update: 2018-12-03
Effective Standard C++ Library: Explicit Function Template Argument Specification and STL A New Language Feature and Its Impact on Old Programming Techniques Klaus Kreft and Angelika
Time of Update: 2018-12-03
考慮一個完整的XML Parser一般由幾部分組成:必要組件:1. DOM 介面定義,以及DOM MODEL的實現。2. 一個XML詞法分析器,用於將XML字元流轉換成TOKEN流。3. 一個XML PARSER,將TOKEN流組織成DOM MODEL.4. 一套在DOM NODE中遍曆的資料結構和演算法,NodeIterator,TreeWalker.5. 一個DTD的詞法分析器和DTD PARSER.6. 一個XPATH運算式語言的編譯器,將XPATH運算式編譯成AST樹。7.
Time of Update: 2018-12-03
zookeeper 3.3.3 在Redhat 上編譯時間,會有下面的錯誤 ../../../include/zookeeper/recordio.h:70: error:expected unqualified-id before ‘__extension__’../../../include/zookeeper/recordio.h:70: error:expected `)' before ‘__extension__’../../..
Time of Update: 2018-12-03
原文地址:http://rest.elkstein.org/Learn REST: A Tutorial 發送HTTP GET請求兩個主要的類是System.net中的HttpWebRequest和HttpWebResponse。下面的方法發送一個請求,並且返回一個長字串:static string HttpGet(string url) { HttpWebRequest req = WebRequest.Create(url) as
Time of Update: 2018-12-03
/*** @file GM_ISort.h* @brief 實現插入排序* @author Don Hao* @date 2011-8-22 19:46:19* @version * <pre><b>copyright: </b></pre>* <pre><b>email: </b>hao.limin@gmail.com</pre>* <pre><b>company:
Time of Update: 2018-12-03
/*** @file GM_QSort.h* @brief 實現快速排序* @author Don Hao* @date 2011-8-21 22:31:06* @version * <pre><b>copyright: </b></pre>* <pre><b>email: </b>hao.limin@gmail.com</pre>* <pre><b>company:
Time of Update: 2018-12-03
例一:#include <stdio.h>void f(int a);void f(long a);void f(char a);int main(int argc,char *argv[]) { double value = 65.01; f(value); return 0; }void f(int a){ printf("int value=%d/n", a);}void f(long a){ printf("long value=%d/n", a);}void f(char