Time of Update: 2018-12-06
並非所有的資源都是heap-based,對那種資源來講,auto_ptr和shared_ptr這樣的智能指標往往不適合作為資源掌管著。你可能需要自己建立自己的資源管理類。例如,處理類型為Mutex的互斥器對象,有lock和unlock兩函數可用。void lock(Mutex* pm); void unlock(Mutex* pm); class Lock{ public: explicit Lock(Mutex* pm)
Time of Update: 2018-12-06
資源管理類避免直接處理資源,但是許多APIs直接涉及資源,所以應該提供返回原始資源的函數。tr1::shared_ptr和auto_ptr都提供一個get成員函數,用來執行顯式轉換,返回智能指標內部的原始指標(的複件)。std::tr1::shared_ptr<Investment> pInv(createInvestment());int daysHeld(const Investment* pi); //返回投資的天數int days = daysHeld(pInv); /
Time of Update: 2018-12-06
A*B mod C的快速計算方法 2009-07-28 17:11:18| 分類: 經典演算法 | 標籤: |字型大小大中小 訂閱方法一: 大家都能想到,計算A*B的值,然後在計算A*B mod
Time of Update: 2018-12-06
變數在範圍裡面被聲明的是什麼類型,就當作什麼類型來用。(1)參數是二維數組,但是要指定第二維的維數。int array[10][10];函式宣告:void fuc(int a[][10]);函數調用:fuc(array);——在函數fuc中,a是二維數組。使用a[i][j]形式來訪問數組中元素。(2)參數使用一維指標數組。int *array[10];for(i = 0; i < 10; i++) array[i] = new int[10];函式宣告:void fuc(int
Time of Update: 2018-12-06
C語言/C++怎樣產生隨機數:這裡要用到的是rand()函數, srand()函數,C語言/C++裡沒有內建的random(int number)函數。 (1) 如果你只要產生隨機數而不需要定義範圍的話,你只要用rand()就可以了:rand()會返回一隨機數值, 範圍在0至RAND_MAX 間。RAND_MAX定義在stdlib.h, 其值為2147483647。 例如:#include<stdio.h> #include<stdlib.h>
Time of Update: 2018-12-06
const 修飾指標:如果關鍵字const出現在星號*左邊,表示被指物是常量,如果const出現在*右邊表示指標自身是常量, 如果出現在兩邊表示被指物和指標都是常量; const std::vector<int>::iterator iter = vec.begin(); //iter的作用就像是T* const; ++iter;錯誤 std::vector<int>::const_iterator cIter = vec.begin();
Time of Update: 2018-12-06
編譯給會為一個空類聲明一個default建構函式、一個copy建構函式、一個copy assignment操作符、和一個解構函式。所有這些都是public且inline:class Empty{};就像是寫了這樣的代碼:class Empty{ Empty(){…} Empty(const Empty& rhs) {…} ~Empty(){…} Empty& operator=(const Empty&
Time of Update: 2018-12-06
為了駁回編譯器自動提供的功能, 可將相應的成員函式宣告為private並不予實現。如果在成員函數或friend函數調用這些, 串連時會報錯。將串連錯誤移至編譯期是可能的,設定一個專門為了防止copying動作的base classs:class Uncopyable{protected: //允許derived物件建構和析構 Uncopyable(){} ~Uncopyable(){}private:
Time of Update: 2018-12-06
http://www.cppblog.com/abilitytao/archive/2011/10/20/77699.htmlC++標準庫簡介(轉) C++標準庫的所有標頭檔都沒有副檔名。C++標準庫的內容總共在50個標準標頭檔中定義,其中18個提供了C庫的功能。 <cname>形式的標準標頭檔【 <complex>例外】其內容與ISO標準C包含的name.h標頭檔相同,但容納了C++擴充的功能。在
Time of Update: 2018-12-06
什麼是介面,介面是一種機制,制定了類應該實現的方法以及這些方法的特徵標,如果IAnimal是一個介面,而CDog是一個事先了介面IAnimal的類,則CDog必須實現介面的聲明和方法.因此,介面相當於一種約定,而實現介面的類必須遵守約定C++如何?介面呢C++介面是只包含純虛函數的抽象基類.繼承抽象基類的類必須實現它聲明的純虛函數,並且採用指定的特徵標.倘若衍生類別也是抽象類別的話,就是上一遍"繼承純虛函數"就沒有全部實現基類的純虛函數了,實現了部分. 作者: 林羽飛揚出處:http://www
Time of Update: 2018-12-06
摘自<<C和指標>>3.23 int *a;int* a;兩者意思相同且後者看上去更為清楚:a被聲明為類型為 int* 的指標. 但是,這並不是一個好技巧,原因如下:int* b, c, d;人們很自然地以為這條語句把所有三個變數聲明為指向整形的指標, 但事實上並非如此. 我們被它的形式愚弄了. 星號實際上是運算式 *b 的一部分, 只對這個標識符有用. b 是一個指標, 但其餘兩個變數只是普通的整形. 要聲明三個指標, 正確的語句如下:int *b, *c, *d;
Time of Update: 2018-12-06
轉自:http://bbs.chinaunix.net/viewthread.php?tid=936821================================================== Keywords: String Literal, Object, Array, Lvalue Author: whyglinux<whyglinux AT gmail DOT com> Date: 2007-05-16 ==================
Time of Update: 2018-12-06
最近手上沒有確實的項目,可以趁這段時間學學GDI,之前也一直有在學習,不過都是一些皮毛的東西,當然現在也只是在學皮毛,皮毛學多了,就成大師了,哈哈,想做一個實實在在的GDI類型的項目,這樣不但可以鞏固知識,也可以學到更多的知識,會把每部分的進展都記錄到部落格上來,哈哈,希望可以和大家一起學習。那就先看看這個C/S的介面效果吧,目前只是這樣布局的,當然可以根據大家的自身愛好,同時需要補充的是,到現在為止,只是晚上了檔案的導航樹功能,先:
Time of Update: 2018-12-06
接著上一隨筆中的那個小繪圖工具,逐步完善其中的功能,上次說了關於檔案樹的操作,主要是導航檔案的建立和刪除,把那部分單獨拿出來是因為遇到同事在項目中處理那部分功能時沒有處理好,所以自己單獨實現了一下,這次主要是繪製元素以及移動,當然現在只能繪製很簡單的元件,比如直線和矩形,然後可以選中他們,並對他們進行移動,當然在以後的隨筆中會逐步的完善,比如旋轉以及可以繪製更負責的元素。先看看這部分的吧,可能顯示的效果不太好。呵呵 在以後會逐步的完善。
Time of Update: 2018-12-06
1.C++中,將負數賦值給unsigned是完全合法的。例如,將-1賦值給unsigned char,那麼結果是255.2.C++中,double的精度和計算速度都要超過float,long double則需要承擔額外的運行代價。3.std:ou/ t<<"Hi"<<st/
Time of Update: 2018-12-06
1、回呼函數 回呼函數實際上是方法調用的指標,又稱函數指標。.NET以委託的形式實現了函數指標的概念。 但與C函數指標不同的地方在於:.NET委託是型別安全的。 .NET中的方法依託於類執行個體。所以不能直接將方法作為參數傳遞。而如果要傳遞方法,必須把方法封裝在委派物件中,委派物件一般簡稱為委託。委託包含了方法細節資訊。 2、聲明委託delegate void VoidOperation(uint x);
Time of Update: 2018-12-06
閉包在電腦學上的定義如下:“In computer science, a closure is a first-class function with free variables that are bound in the lexical environment.”懂了沒有?沒懂,那麼繼續讀下去。 函數是一等公民(Your Functions Are First Class) 那麼什麼是”first-class
Time of Update: 2018-12-06
看到這篇文章:http://tech.pro/tutorial/1155/obtaining-method-caller-information-in-c 感覺挺有用處,就節選重點翻譯下。 在日誌組件中,我們可能需要記錄方法調用資訊。.NET 4.5/Visual Studio 2012提供了很方便地支援這一功能。 要記錄的方法調用資訊包括:方法成員名稱源檔案路徑行號
Time of Update: 2018-12-06
class singleton{ public: static singleton* instance(); //聲明一個靜態成員函數 protect: singleton(); private: static singleton* _instance; //聲明一個靜態成員變數};singleton* singleton::_instance = 0;singleton* singleton::instance(){ if( _instance == 0 )
Time of Update: 2018-12-06
位操作符: 將其整型運算元視為二進位位的集合,為每一位提供檢驗和設定的功能。~