Time of Update: 2018-12-04
又一神轉載。。。不僅對理解有協助。。而且以後寫日誌學學原作者。。改變一些字型顏色...前面可以看。。後面暫時不深究 c++建構函式的知識在各種c++教材上已有介紹,不過初學者往往不太注意觀察和總結其中各種建構函式的特點和用法,故在此我根據自己的c++編程經驗總結了一下c++中各種建構函式的特點,並附上例子,希望對初學者有所協助。 c++類的建構函式詳解 一、
Time of Update: 2018-12-04
原始地址:C / C++演算法學習筆記(3)-冒泡法 冒泡法: 這是最原始,也是眾所周知的最慢的演算法了。它的名字的由來因為它的工作看來象是冒泡: #include <iostream.h>void BubbleSort(int* pData,int Count){ int iTemp; for(int i=1;i<Count;i++) { for(int j=Count-1;j>=i;j--) {
Time of Update: 2018-12-04
原始地址:C / C++演算法學習筆記(4)-交換法 交換法:交換法的程式最清晰簡單,每次用當前的元素一一的同其後的元素比較並交換。#include <iostream.h>void ExchangeSort(int* pData,int Count){ int iTemp; for(int i=0;i<Count-1;i++) { for(int j=i+1;j<Count;j++) {
Time of Update: 2018-12-04
1.用#號將輸入的內容轉換為字串。 用##號將兩個參數合并。 #include <iostream> using namespace std; //將輸入的內容轉換成字串 #define AllToString(str) #str //將兩個參數粘在一起 #define AllToParter(parm1,parm2) parm1##parm2 int main() {cout<<AllToString(hello
Time of Update: 2018-12-04
void指標指標有兩個屬性:指向變數/對象的地址和長度但是指標只儲存地址,長度則取決於指標的類型 編譯器根據指標的類型從指標指向的地址向後定址 指標類型不同則定址範圍也不同,比如: int*從指定地址向後尋找4位元組作為變數的儲存單元 double*從指定地址向後尋找8位元組作為變數的儲存單元 1.void指標是一種特別的指標 void *vp //說它特別是因為它沒有類型 //或者說這個類型不能判斷出指向對象的長度 2.任何指標都可以賦值給void指標 type *p; vp=p;
Time of Update: 2018-12-04
原始地址:雙向冒泡通常的冒泡是單向的,而這裡是雙向的,也就是說還要進行反向的工作。代碼看起來複雜,仔細理一下就明白了,是一個來回震蕩的方式。寫這段代碼的作者認為這樣可以在冒泡的基礎上減少一些交換(我不這麼認為,也許我錯了)。反正我認為這是一段有趣的代碼,值得一看。#include <iostream.h>void Bubble2Sort(int* pData,int Count){ int iTemp; int left =1; int right =Count -
Time of Update: 2018-12-04
在開發時,需要列印相關的日誌,協助開發人員進行偵錯工具。Object C中利用NSLog列印相關日誌資訊,在這裡我只事記錄一些簡單的內容。NSLog的定義NSLog定義在NSObjCRuntime.h中,如下所示:void NSLog(NSString *format, …);基本上,NSLog很像printf,同樣會在console中輸出顯示結果。不同的是,傳遞進去的格式化字元是NSString的對象,而不是chat *這種字串指標。樣本NSLog可以如下面的方法使用:NSLog
Time of Update: 2018-12-04
這四個操作符:static_cast, const_cast, dynamic_cast, 和reinterpret_cast static_cast 這些操作符你只需要知道原來你習慣於這樣寫,(type) expression而現在你總應該這樣寫:static_cast<type>(expression) 例如,假設你想把一個int 轉換成double,以便讓包含int 類型變數的運算式產生出浮點數值的結果。如果用C 風格的類型轉換,你能這樣寫:int firstNumber,
Time of Update: 2018-12-04
反射(Reflection)是.NET中的重要機制,通過放射,可以在運行時獲得.NET中每一個類型(包括類、結構、委託、介面和枚舉等)的成員,包括方法、屬性、事件,以及建構函式等。還可以獲得每個成員的名稱、限定符和參數等。有了反射,即可對每一個類型了如指掌。如果獲得了建構函式的資訊,即可直接建立對象,即使這個對象的類型在編譯時間還不知道。 程式碼在編譯後產生可執行檔應用,我們首先要瞭解這種可執行應用程式的結構。
Time of Update: 2018-12-04
這個挺讓人蛋疼的,看了愛忘,因為一直沒怎麼用。總結一下,以後不去c++ primer上查了。const指標分為三類:1、指向const對象的指標(1)定義形式:const double* pt;//const 在定義的最前面。(2)關鍵:pt可以改變指向,但不可以改變它所指向的那個對象的值。即它本身的值可以變化,但是不能使用pt改變被它指向的那個對象的值。很明顯嘛,pt是指向const對象的指標,const對象怎麼能改變呢?但是,pt也可以指向非const對象,但把它當做const對象看待。2、
Time of Update: 2018-12-04
1)StreamReader無法取得正確取得當前位置的問題。這個問題網上看到有人提了,參見:StreamReader緩衝引起BaseStream.Position不能反映當前Read位置的問題。不過它給出的解決方案不太認同。我的檔案有幾十兆,不想全部讀入記憶體。如果考慮用Stream/BufferedStream,這樣就得自己寫ReadLine等函數,也不是好招。2)C#中似乎只有map(即Dictionary),貌似沒multi_map?可憐我偏偏要用到這個資料結構。目前我老老實實用Dicti
Time of Update: 2018-12-04
本文已經遷移到: http://cpp.winxgui.com/cn:gc-allocator-and-boost-object-poolC++記憶體管理變革(4): boost::object_pool許式偉 (著作權聲明)2007-4-21這篇文章拖的有點久了。NeutralEvil
Time of Update: 2018-12-04
C/C++字串處理(5):std::deque與std::TextPool許式偉2008-4-4引子std::TextPool 基於 std::deque 實現。所以儘管本文討論 std::deque,但是所有的結論對 std::TextPool 同樣有效。實現概要顧名思義,這是一個“雙向隊列(double-ended queue)”。這意味著從隊列開始和結束處插入(刪除)資料的效能很好。為了達到這個目的,std::deque
Time of Update: 2018-12-04
今有c++程式:class CA{public: CA(int n1=0):_n1(n1){} virtual void vf1(){}private: int _n1;};class CAsub:CA{public: CAsub(int n1=0,int n2=1):CA(n1),_n2(n2){} virtual void vf1(){} virtual void vf2(){}private: int _n2;};int main(int argc, char*
Time of Update: 2018-12-04
難度: 先來一道思考題template<typename T, T* p>struct A{}; 假若有個int類型的對象i,那麼對於下面這段代碼A<int, &i> obj;這個是合法的嗎? 答: A<int, &i> obj; 可能合法 或 可能不合法。什麼東西可以當作模板的參數呢?
Time of Update: 2018-12-04
Normal 0 7.8 磅 0 2 false false false MicrosoftInternetExplorer4 難度:問題: 下面這段代碼為什麼會編譯失敗呢? struct T{ operatorstd::string() const { returnstd::string(); } operatorint() const
Time of Update: 2018-12-04
原文連結:http://www.cplusplus.com/info/faq.htmlC++ FAQ這個部分包括了關於 C++ 語言的常見各種問題。如果你對某個具體的編程問題有疑問,請去論壇。◎什麼是 C++? C++ 是一種程式設計語言。因為它是源自 C 語言,字面上來說它是“C 的進階”。要找更加介紹性的文字,請參閱 C++ 簡介 章節。◎學習 C++ 之前必須有其它語言的基礎嗎? 不。在運算式方面,C++ 是一門簡單、清晰的語言。確實,一段 C++
Time of Update: 2018-12-04
2004-11-19 21:00Const 最早想法是用於取代前置處理器#define 這個宏,從而形成常量的概念。針對常量const對象,const指標及指向const的指標,函數const型別參數,const 函數傳回型別, const類成員,及const成員函數,及對const最後理解的一些總結來描述 const。①②③④⑤⑥① const對象和const類型的對象對於這兩個概念的描述如下1. int const Object;
Time of Update: 2018-12-04
在C語言的學習中,對記憶體管理這部分的知識掌握尤其重要!之前對C中的malloc()和free()兩個函數的瞭解甚少,只知道大概該怎麼用——就是malloc然後free就一切OK了。當然現在對這兩個函數的體會也不見得多,不過對於本文章第三部分的內容倒是有了轉折性的認識,所以寫下這篇文章作為一個對知識的總結。這篇文章之所以命名中有個“淺談”的字眼,也就是這個意思了!希望對大家有一點協助!如果不扯得太遠的話(比如說作業系統中虛擬記憶體和實體記憶體如何運做如何管理之類的知識等),我感覺這篇文章應該是比
Time of Update: 2018-12-04
這次因為項目被劃分成多個dll模組,而且在某個dll模組中new出來的記憶體塊可能會穿越其他的dll,最後可能不是在它出生的那個dll中被銷毀,這會導致記憶體配置回收出現問題。 考慮了一下,決定由一個dll模組單獨的維護記憶體申請和釋放,其他任何需要動態申請記憶體的模組都調用該dll中的介面即可。不過在實際操作中,有一點點問題:我本來是希望在dll中重載好new和delete,這樣其他模組只要和dll連結就可以,最大限度複用代碼。但是實際上實驗下來是不行的。new重載後公開為匯出函數倒是沒問題,