Time of Update: 2018-07-25
理解編譯器的編譯模板過程 如何組織編寫模板程式 前言 常遇到詢問使用模板到底是否容易的問題,我的回答是:“模板的使用是容易的,但組織編寫卻不容易”。看看我們幾乎每天都能遇到的模板類吧,如STL, ATL, WTL, 以及Boost的模板類,都能體會到這樣的滋味:介面簡單,操作複雜。
Time of Update: 2018-07-25
http://bbs.csdn.net/topics/390299079 前段時間感興趣研究新浪微博C++介面。有oauth1.0與oauth2.0. 其中1.0已經不被支援,所以使用了0.2.地址在這裡。 發現它是使用vs2008,而我使用的工具是vs2010,轉換不過來(不知道為什麼,oauth1.0的可以正確轉換為vs2010).看它的結構設計是支援跨平台的,所以想也把它按我以前跨平台的組織方式重新組織一下。故有了如下項目(已測試win+linux正常)。
Time of Update: 2018-07-25
友元不能被繼承:即,基類的友元未必是子類的友元;某類型的友元的子類未必是此類型的友元。 詳細的,可以看以下兩節: What does it mean that "friendship isn't inherited, transitive, or reciprocal"? Just because I grant you friendship access to me doesn't automaticallygrant your kids
Time of Update: 2018-07-25
//友元關係的雙向都是不可繼承的#include<iostream>class Base{ friend class Frnd;protected: int i;};class D1 : public Base{protected: int j;};class Frnd{public: int mem(Base b) { return b.i; }//ok int mem(D1 d) { return d.i; }//ok //int mem(D1 d) { return d.j;
Time of Update: 2018-07-25
1,友元函數的定義和作用 我們已知道類具有封裝和資訊隱藏的特性。只有類的成員函數才能訪問類的私人成員,程式中的其他函數是無法訪問私人成員的。非成員函數可以訪問類中的公有成員,但是如果將資料成員都定義為公有的,這又破壞了隱藏的特性。另外,應該看到在某些情況下,特別是在對某些成員函數多次調用時,由於參數傳遞,類型檢查和安全性檢查等都需要時間開銷,而影響程式的運行效率。
Time of Update: 2018-07-25
記憶體流失是編程中常常見到的一個問題,我所遇過的原因有兩個: 1.分配完記憶體後忘記回收 2.代碼有問題,造成想回收卻無法回收,例如: int * p = new int ; p = new int ; // p指標修改,原來申請記憶體的地址沒有記錄下來,於是無法釋放
Time of Update: 2018-07-25
感謝博主:http://blog.csdn.net/zhulinpptor/article/details/6638355 1.CArchive類沒有基類 2.CArchive類是實現對象持久化的方法,它可以把記憶體中的對象持久化到本地磁碟中去,也可以從本地磁碟中讀取資料在記憶體在構建對象 3.CArchive類和輸入輸出資料流類似。輸入輸出資料流處理是acii字元序列,而CArchive類是以一種高效的非冗餘的方式來處理二進位對象資料。
Time of Update: 2018-07-25
1.Unity Time類 1/ Time.time 表示從遊戲開發到現在的時間,會隨著遊戲的暫停而停止計算。 2/ Time.timeSinceLevelLoad 表示從當前Scene開始到目前為止的時間,也會隨著暫停操作而停止。 3/ Time.deltaTime 表示從上一幀到當前幀時間,以秒為單位。 //計時器通過這個使用,update裡把Time.deltaTime累加起來,就是經過的時間 4/
Time of Update: 2018-07-25
賴勇浩(http://laiyonghao.com) 聲明:本文源自 Danny Kalev 在 2011 年 6 月 21 日發表的《The Biggest Changes in C++11(and Why You Should
Time of Update: 2018-07-25
C++多態的實現及原理 C++的多態性用一句話概括就是:在基類的函數前加上virtual關鍵字,在衍生類別中重寫該函數,運行時將會根據對象的實際類型來調用相應的函數。如果物件類型是衍生類別,就調用衍生類別的函數;如果物件類型是基類,就調用基類的函數 1. 用virtual關鍵字申明的函數叫做虛函數,虛函數肯定是類的成員函數。 2. 存在虛函數的類都有一個一維的虛函數表叫做虛表。類的對象有一個指向虛表開始的虛指標。虛表是和類對應的,虛表指標是和對象對應的。 3. 多態性是一個介面多種實現,
Time of Update: 2018-07-25
#include <stdio.h>#include <stdlib.h>#include <string.h>int test_fgets(const char* filePath){ FILE* fp=fopen(filePath,"r"); if(fp==NULL) { printf("open error!%s",strerror(errno)); return -1
Time of Update: 2018-07-25
如下圖所示,隨機產生多個 不重複 的隨機數(整數,100以下),個數可以通過對話方塊視窗擷取;產生資料後,按 降序 將其顯示在ListBox控制項中(每次只能選擇一項),按鈕Up和Down分別上調和下調選擇項; 思路: 在對話方塊Form2中 定義一個屬性Number;
Time of Update: 2018-07-25
1.簡介 基於流的操作最終會調用read或者write函數進行I/O操作。為了使程式的運行效率最高,流對象通常會提供緩衝區,以減少調用系統I/O庫函數的次數。 在Linux中,緩衝方式存在三種,分別是: (1)全緩衝。輸入或輸出緩衝區被填滿,會進行實際I/O操作。其他情況,如強制重新整理、進程結束也會進行實際I/O操作。
Time of Update: 2018-07-25
C語言可變參數在宏定義中的應用 http://www.cnblogs.com/xyang0917/p/4172493.html 在C語言的標準庫中,printf、scanf、sscanf、sprintf、sscanf這些標準庫的輸入輸出函數,參數都是可變的。在偵錯工具時,我們可能希望定義一個參數可變的輸出函數來記錄日誌,那麼用可變參數的宏是一個不錯的選擇。
Time of Update: 2018-07-25
Firstly, the Combination Sum 1 & 4 are similar, and Combination Sum 2 & 3 are similar !!! Combination Sum 3 is the special case of Combination Sum 2, and the Combination Sum 4 return the count while Combination Sum return all the combination
Time of Update: 2018-07-25
C語言中的const const是C語言中保留的一個關鍵字,用來定義常量,如果一個變數被const修飾,那麼它的值就不能被改變。使用符號常量寫出的代碼更容易維護;一些指標常常是邊讀邊移動,而不是邊寫邊移動;許多編程規範對於函數參數會強制要求唯讀不寫,在這些情況下,都需要藉助const實現。 那麼有些人會問,C語言中不是已經存在#define了嗎,為什麼還要使用const呢。相比於#define,const修飾符有如下優勢: 1.
Time of Update: 2018-07-25
動機 前幾天看到一個面試題:寫一個“標準”宏MIN,這個宏輸入兩個參數並返回較小的一個,裡面提到兩個題目考察點: 懂得在宏中小心地把參數用括弧括起來 宏的副作用,例如:當你寫下面的代碼時會發生什麼事。 least = MIN(*p++, b); 平時也會用到宏定義,對於宏的理解還不特別深入,重新看了Kernighan的C程式設計語言中關於宏部分,特次記錄. 宏定義的本質 #define 名字 替換文本
Time of Update: 2018-07-25
轉自:http://www.itstrike.cn/Question/5e977ab5-e035-4595-a35b-91aae63fa394.html 1.UTF-8轉Unicode wstring UTF8ToUnicode( const string& str ){ int len = 0; len = str.length(); int unicodeLen = ::MultiByteToWideChar( CP_UTF8, 0,
Time of Update: 2018-07-25
函數原型 void *memcpy(void*dest, const void *src, size_t n); 功能 由src指向地址為起始地址的連續n個位元組的資料複製到以destin指向地址為起始地址的空間內。 標頭檔 #include<string.h> 傳回值 函數返回一個指向dest的指標。 說明 1.source和destin所指記憶體地區不能重疊,函數返回指向destin的指標。 2.與strcpy相比,memcpy並不是遇到’
Time of Update: 2018-07-25
C(和C++)中的宏(Macro)屬於編譯器預先處理的範疇,屬於編譯期概念(而非運行期概念)。下面對常遇到的宏的使用問題做了簡單總結。 關於#和## 在C語言的宏中,#的功能是將其後面的宏參數進行字串化操作(Stringfication),簡單說就是在對它所引用的宏變數通過替換後在其左右各加上一個雙引號。比如下面代碼中的宏: #define WARN_IF(EXP)