Time of Update: 2018-12-04
模板方法模式(Template Method):定義一個操作中的演算法的骨架,而將一些方法實現延遲到子類。模板方法使得子類可以不改變一個演算法的結構即可以重定義該演算法的某些特定步驟。 通俗一點講,假設一個類或者演算法實現需要調用函數f1、f2、f3,調用的順序確定,為f1,f2,f3,但是對於不同的類,不同的演算法,f1、f2、f3的實現過程會有不同;那麼模板方法怎麼解決問題的呢?首先,定義一個函數將f1、f2、f3按確定的順序封裝起來,並將該函數定義為virtual
Time of Update: 2018-12-04
範圍:變數名有效範圍 存在期:變數在程式中存在的時期. 儲存方式:auto, register, extern, static 儲存空間類型: 棧(stack):自動分配和清除的變數.如:局部變數和函數參數等 堆(heap):由malloc等函數分配的空間. (在c++裡這叫自由儲存區,而把new得來的空間叫做堆) 全域/靜態儲存區:儲存全域變數和靜態變數. 常量儲存區:儲存常量(常量字串,magic number等),不允許修改. 類型補充範圍存在期初始化外部定義(函數外面)
Time of Update: 2018-12-04
在一個函數體內定義的類稱為局部類。局部類中只能使用它的外圍範圍中的對象和函數進行聯絡,因為外圍範圍中的變數與該局部類的對象無關在定義局部類時需要注意:局部類中不能說明靜態成員函數,並且所有成員函數都必須定義在類體內。在實踐中,局部類是很少使用的。下面是一個局部類的例子int a;void fun(){static int s;class A{public: void init(int i) { s = i; }};A m;m.init(10);}
Time of Update: 2018-12-04
文章目錄 第一種條件編譯第二種條件編譯 先行編譯是整個編譯過程的第一步,是g++ -E選項輸出的結果。這個步驟處理的是源檔案/標頭檔中的宏,巨集指令常用的有以下幾類:檔案包含:#include宏定義:#define、#undef條件編譯:#ifdef、#ifndef、#if、#elif、#else、#endif1. 檔案包含 #include預先處理會把要包含的檔案的內容全部包含進來,比如下面這個檔案prepro.cpp:#include
Time of Update: 2018-12-04
例子:在C的main函數中調用組合語言寫的addone函數,把傳入的參數加一然後返回。彙編裡面首先要把用到的寄存器壓棧,使用指令global使函數可以在其他檔案中調用,順便說一句,C中的static函數之所以只能在本檔案中可用,就是編譯後的彙編檔案沒有用global指令,彙編的傳回值放在EAX寄存器中。彙編檔案名稱是addone.asm,彙編方法在後面,內容如下:global addone;addone:MOV RAX, [RSP + 20]; stack top + 20 bytesADD
Time of Update: 2018-12-04
C sscanf 函數的用法 詳解【原文出處】http://www.cnblogs.com/lyq105/archive/2009/11/28/1612677.html 在我的學習過程中,從檔案讀取資料是一件很麻煩的事,所幸有sscanf()函數。 C語言函數sscanf()的用法 sscanf() - 從一個字串中讀進與指定格式相符的資料. 函數原型: int sscanf( string str, string fmt, mixed var1, mixed
Time of Update: 2018-12-04
C++ 計時器 單位【原文出處】http://my.csdn.net/yuhentian/code/detail/29603C++中基本的計時器使用,有多種基本單位可選//Windows系統下time(),clock(),timeGetTime(),GetTickCount(),QueryPerformanceCounter()來計時#include <stdio.h> #include <windows.h> #include <time.h>
Time of Update: 2018-12-04
題目:對於一個空類,sizeof(空類)是多少?先看一下測試代碼,結果在G++ 4.5 64bit機器上列印出來。#include <iostream>using namespace std;class ClassA {};class ClassB { private: int b;};class ClassC : public ClassA {};class ClassD : public ClassB {};class ClassE { public: int
Time of Update: 2018-12-04
(一)在centos5.5下面:1. 使用yum安裝(最簡單): 1.1 使用yum安裝時,首先確保一個最新的源,通過網路軟體檔案鏡像將系統裡的軟體升級,如直接在終端執行以下: cd /etc/yum.repos.d mv CentOS-Base.repo CentOS-Base.repo.save wget http://centos.ustc.edu.cn/CentOS-Base.repo.5 mv CentOS-Base.
Time of Update: 2018-12-04
1.沒有人強迫你,是你志願選擇了symbian os.2.這是最重要的問題,開發symbian 平台的軟體到底有沒有前途呢?每個symbian os的開發人員都在考慮這個的問題,答案很簡單,問問市場就知道了,只要你做的是精品,肯定會得到認可的。全球每年生產幾億部手機,如果都裝有你寫的軟體,我想成就感要比win平台上的程式員自豪多了,前途嘛你自己說呢?3.Symbian os 程式員應必備的素質=程式員應必備的素質+創新+市場意識。4.關於開發環境最好使用vc.net 和 vc6來搭配,因為VC
Time of Update: 2018-12-04
文章目錄 1、 數流基數2、 設定浮點數的精度3、設定域寬:
Time of Update: 2018-12-04
賦值操作符的傳回值1.a=1;cout<<a++;列印:1cout<<++a;列印:22.a=1; c = ( a *= 2 ) + ( a += 3 );結果:a=5, c=10c = ( a += 3 ) + ( a *= 2 );結果:a=8, c=16解釋:()的優先順序大於+和=,所以先做賦值,再做兩者之和a *= 2
Time of Update: 2018-12-04
在C語言中,是通過下面這三個函數來完成對可變參數列表值的讀取的。va_start(ap,fmt);vsprintf(info_buf,fmt,ap);va_end(ap);使用下面的代碼來示範一下。#include <stdio.h>#include <stdlib.h>#include <stdarg.h>int TestFunc(int Flag,const char *fmt,...){va_list ap;char
Time of Update: 2018-12-04
在使用C++編程的過程當中,常常需要對類成員進行初始化,通常的方法有兩種: 第一種方法: CMYClass::CSomeClass() { x=0; y=1; } 第二種方法: CSomeClass::CSomeClass() : x(0),
Time of Update: 2018-12-04
BSS段:BSS段(bss segment)通常是指用來存放程式中未初始化的全域變數的一塊記憶體地區。BSS是英文Block Started by Symbol的簡稱。BSS段屬於靜態記憶體配置。資料區段:資料區段(data segment)通常是指用來存放程式中已初始化的全域變數的一塊記憶體地區。資料區段屬於靜態記憶體配置。程式碼片段:程式碼片段(code segment/text
Time of Update: 2018-12-04
C語言中結構體對齊問題 收藏 關於C語言中的結構體對齊問題1,比如: struct{short a1;short a2;short a3;}A;struct{long a1;short a2;}B;sizeof( A)=6, sizeof(
Time of Update: 2018-12-04
1. 如何擷取應用程式的執行個體控制代碼? 應用程式的 執行個體控制代碼儲存在CWinAppIm_hInstance 中,可以這麼調用 AfxGetInstancdHandle獲得控制代碼. Example: HANDLE hInstance=AfxGetInstanceHandle(); 2. 如何通過代碼獲得應用程式主視窗的指標? 主視窗的 指標儲存在CWinThread::m_pMainWnd中,調用 AfxGetMainWnd實現。 AfxGetMainWnd()
Time of Update: 2018-12-04
編譯器為內聯一個方法所使用的過程是這樣的:內聯方法的連續代碼塊被複製到調用該方法的調用點處。內聯方法內的任何局部變數在塊內分配。內聯方法的輸入參數和傳回值被影射到調用方法的局部變數空間。如果內聯方法有多個返回點,則這些返回點就變成內聯塊尾部的分支(可怕的goto)。所有與調用有關的痕迹以及隨之即來的所有可能的效能損失都被消除了。然而避免調用只是與內聯有關的效能項的一半,調用間最佳化是內聯效能的另一半。
Time of Update: 2018-12-04
文章目錄 下面我們以程式集(dll)為單位為討論下.Net 2.0中的類庫,而不是以命名空間. 我們知道安裝了.NET Framework後,裡面有非常多的類庫,可能有些類我們一輩子都不會去用到.但大概知道有哪些類,以後想用的時候就可以很容易找到.所謂類庫就是很多事微軟的人給你做好了,給只要簡單的調用下就行了.這裡主要講下.NET 2.0,3.0與3.5中的類庫.類庫的組織要查看類庫中的所有資訊你開啟Object
Time of Update: 2018-12-04
/*goal, C++類型轉換。雖然平時用得不多,但是面試C++時會問到這方面,各個cast的用法。date, 2013-3-6env, ubuntu1204-gcc*/#include <iostream>using std::cout; using std::endl;// 去除未引用警告template <typename T>void SinkUnusedWarning(T) { }class F {};class G{public://