Time of Update: 2018-12-05
C++從零開始(七) ——何謂函數 本篇之前的內容都是基礎中的基礎,理論上只需前面所說的內容即可編寫出幾乎任何只操作記憶體的程式,也就是本篇以後說明的內容都可以使用之前的內容自己實現,只不過相對要麻煩和複雜許多罷了。
Time of Update: 2018-12-05
C++從零開始(十二) ——何謂物件導向編程思想 前面已經說明了C++中最重要的概念——類,並且介紹了大部分和類相關的知識,至此,已經可以開始做些編程方面比較進階的應用——設計程式,而不再只是將演算法變成代碼。要說明如何設計程式,有必要先瞭解何謂編程思想。編程思想 編程,即編寫程式,而之前已經說過,程式就是方法的描述,那麼編程就是編寫方法的描述。我知道如何到人民公園,然後我就編寫了到人民公園的方法的描述——從市中心開始向東走400米再向右轉走200米就是。接著另一個人也知道如何去,
Time of Update: 2018-12-05
C++從零開始(八) ——C++範例一 前篇說明了函數的部分實現方式,但並沒有說明函數這個文法的語義,即函數有什麼用及為什麼被使用。對於此,本篇及後續會零散提到一些,在《C++從零開始(十二)》中再較詳細地說明。本文只是就程式員的基本要求——拿得出演算法,給得出代碼——給出一些範例,以說明如何從演算法編寫出C++代碼,並說明多個基礎且重要的編程概念(即獨立於程式設計語言而存在的概念)。由演算法得出代碼
Time of Update: 2018-12-05
C++從零開始(九) ——何謂結構
Time of Update: 2018-12-05
C++從零開始(十) ——何謂類 前篇說明了結構只不過是定義了記憶體布局而已,提到類型定義符前還可以書寫class,即類型的自訂類型(簡稱類),它和結構根本沒有區別(僅有一點小小的區別,下篇說明),而之所以還要提供一個class,實際是由於C++是從C擴充而成,其中的class是C++自己提出的一個很重要的概念,只是為了與C語言相容而保留了struct這個關鍵字。不過通過前面括弧中所說的小小區別也足以看出C++的設計者為結構和類定義的不同語義,下篇說明。
Time of Update: 2018-12-05
C++從零開始(十一)上篇 ——類的相關知識 前面已經介紹了自訂類型的成員變數和成員函數的概念,並給出它們各自的語義,本文繼續說明自訂類型剩下的內容,並說明各自的語義。許可權 成員函數的提供,使得自訂類型的語義從資源提升到了具有功能的資源。什麼叫具有功能的資源?比如要把收音機映射為數字,需要映射的操作有調整收音機的頻率以接收不同的電台;調整收音機的音量;開啟和關閉收音機以防止電力的損耗。為此,收音機應映射為結構,類似下面: struct Radiogram {
Time of Update: 2018-12-05
C++從零開始(十一)中篇 ——類的相關知識 本文關於虛函數的論述有一處嚴重錯誤,關於此錯誤已在本文的評論中說明,對此造成的不便,在此深感抱歉。 由於篇幅限制,本篇為《C++從零開始(十一)》的中篇,說明多重繼承、虛繼承和虛函數的實現方式。多重繼承 這裡有個有趣的問題,如下: struct A { long a, b, c; char d; }; struct B : public A { long e, f; };
Time of Update: 2018-12-05
C++從零開始(十一)下篇 ——類的相關知識 由於篇幅限制,本篇為《C++從零開始(十一)》的下篇,討論多態性及一些剩下的問題。虛的含義 本文的中篇已經介紹了虛的意思,就是要間接獲得,並且舉例說明電視機的頻道就是讓人間接獲得電視台頻率的,因此其從這個意義上說是虛的,因為它可能操作失敗——某個頻道還未調好而導致一片雪花。並且說明了間接的好處,就是只用編好一段代碼(按5頻道),則每次執行它時可能有不同結果(今天5頻道被設定成中央5台,明天可以被定成中央2台),進而使得前面編的程式(按5
Time of Update: 2018-12-05
讓C++也來支援事件?(http://blog.csdn.net/wqf2/) 物件導向發展到今天,人們已經不滿足於對一個事物的描述僅停留在屬性和方法上了。事件也作為對象的基本組成部分,被新興的物件導向語言所採納。
Time of Update: 2018-12-05
原文:http://www.c-sharpcorner.com/UploadFile/sd_surajit/cloning05032007012620AM/cloning.aspx Have you ever used the Clone() method of DataSet? This method creates an empty class with same structure as original DataSet. You can write your own
Time of Update: 2018-12-05
對於回呼函數的編寫始終是寫特殊處理功能程式時用到的技巧之一。先介紹一下回調的使用基本方法與原理。 1、在這裡設:回呼函數為A()(這是最簡單的情況,不帶參數,但我們應用的實際情況常常很會複雜),使用回呼函數的操作函數為B(), 但B函數是需要參數的,這個參數就是指向函數A的地址變數,這個變數一般就是函數指標。使用方法為:int A(char *p); // 回呼函數 typedef int(*CallBack)(char *p) ; // 聲明CallBack 類型的函數指標
Time of Update: 2018-12-05
在編MFC應用程式時,經常會遇到標頭檔相互包含的問題,很是苦惱,於是便求助於強大的CSDN,得到如下答案: 方法一:利用友元類 我一共有兩個類,由於要在兩個類的標頭檔裡互相應用對方,所以,在每一個類的標頭檔裡面現包含另一個類的標頭檔,然後在該類的定義中聲明另一個類為友元類。如下: #include "B.h" class CA: public CDialog { friend class CB; public: CB* m_b;
Time of Update: 2018-12-05
原文:http://gamedev.csdn.net/page/f530fc44-61e2-414e-ba45-fd869442855d1.如何在Release狀態下進行調試Project->Setting=>ProjectSetting對話方塊,選擇Release狀態。C/C++標籤中的Category選General,Optimizations選Disable(Debug),Debut info選Program Database。在Link標籤中選中Generate debug
Time of Update: 2018-12-05
1. c++中回調風格。 在c時代,非同步呼叫的時候,對方如果要通知自己執行結果,一般是在調用的時候註冊一個函數指標過去,對方執行完之後,執行該函數指標指向的函數,達到通知的木的。 到了c++中,則使用一個介面來代替函數指標。比如class Delegate{public: virtual void response(std::string& resultStr)= 0;};class CallDelegate :public Delegate{public:
Time of Update: 2018-12-05
1. std::string 的read on write機制,標準庫中的std::string,在複製的時候,並沒有立即把內部緩衝的字串複製,而是當編輯該字串的時候才進行複製,這個居然在C++primer上沒有說明,坑爹。
Time of Update: 2018-12-05
memset原型:extern void *memset(void *buffer, int c, int count);用法:#i nclude功能:把buffer所指記憶體地區的前count個位元組設定成字元c。說明:返回指向buffer的指標。 可用Array.Clear實現 byte[] yourArray = ....// 清除元素Array.Clear(yourArray, 0, yourArray.Length); 或者仿照C++寫一個自己的函數: public static
Time of Update: 2018-12-05
1.開啟檔案: extern FILE *fopen(__const char *__restrict __filename, __const *__restrict __modes); 如果執行成功,將返回開啟檔案的檔案指標;如果執行失敗,將返回NULL。2.關閉檔案: extern int fclose(FILE *__stream); 如果執行成功,則返回0;否則返回EOF,並設定錯誤標識位error全域變數。3.關閉當前進程開啟的所有流對象: extern
Time of Update: 2018-12-05
近來在網上閑逛的時候偶然發現一個網站(http://www.trumphurst.com/cpplibs/cpplibs.php)上面收集了我所見過的數量最多的C++庫,包括的著名ACE,Blitz++,Boost,HansBoehms GC,Libg++,Loki,Matcom,QT等等,其中開源的有很多,也有許多商業的,其功能涵蓋十分廣泛,Socket,Regex,演算法,GUI,資料庫,數值計算,影像處理,還介紹了一些C++程式員常用工具.不過也有許多沒有出現在列表中,比如ZThread,
Time of Update: 2018-12-05
一、變數聲明格式: 儲存類型 類型修飾符 資料類型 變數名;二、函式宣告格式: 儲存類型 傳回型別 函數名 (參數列表){}儲存類型有:1.auto: 只能標識 [ 變數 ] 的儲存類型。標識該局部變數儲存在正在啟動並執行進程 [棧地區]。注意,局部變數如果沒有初始化而直接參与計算,系統將會為其分配一個隨機值2.extern: 既可標識變數,也可以標識函數。
Time of Update: 2018-12-05