Time of Update: 2018-12-03
以前C89不能隨便定義變數,現在可以跟C++一樣,隨用隨定義,倒是方便了不少。 今天看C++ Primer,發現個更high的,.c的尾碼,只要用g++去編譯,照樣能過C++的程式book.c內容如下,注意啊,尾碼名是.c,不是.cpp或者.cxx#include <iostream>using namespace std;void read() {cout << "read()\n"; }void sort(){cout <<
Time of Update: 2018-12-03
在CSDN的BLOG中,看到這篇文章http://blog.csdn.net/housisong/archive/2007/04/27/1586717.aspx 裡面用C++實現的,現在我用C++複現了一下,希望以後用Python再實現。 假設對圖片上任意點 (x,y) ,繞一個座標點 (rx0,ry0) 逆時針旋轉 a 角度後的新的座標設為 (x', y') ,有公式: 先貼幾個檔案 imgtool.h #define PI 3.141592;#include
Time of Update: 2018-12-03
快要找工作了,最近在狂看《程式員面試寶典》(第二版),中間有個題目,作者解釋錯了。更重要的是,裡面有個細節,導致我弄了好久才搞懂,現在拿出來分享下。下面是書中P37的原始碼:面試例題1: 下面程式的輸出結果是多少?#include<iostream>using namespace std;int main(){unsigned char a = 0xA5;unsigned char b = ~a >> 4;//cout << b;printf("b=%d\n"
Time of Update: 2018-12-03
1、關於建構函式1)用建構函式確保初始化對於一個空類class Empty {
Time of Update: 2018-12-03
定義const對象,一個用不可改變的變數代表一常數的解決辦法。非const變數預設為extern,要使const變數能夠在其它的檔案中訪問,必須顯式地指定它為extern。extern const bufSize=500;引用:int ival=1024;int &refVal=ival;const引用是指向const對象的引用。const int ival=1024;const int
Time of Update: 2018-12-03
關鍵段:CRITICAL_SECTION
Time of Update: 2018-12-03
class Sales_item{public:Sales_item(void);~Sales_item(void);private:string isbn;unsigned units_sold;double
Time of Update: 2018-12-03
SRWLock允許我們區分那些想要讀取資源的值的線程(讀取者線程)和想要更新資源的值的線程(寫入者線程)。讓所有的讀取者線程在同一時刻訪問共用資源是可行的,因為不存在破壞資料的風險。只有當寫入者想要對資源進行更新的時候才需要進行同步。這種情況下,寫入者線程應該獨佔對資源的訪問權:任何其它線程,無論是讀取者還是寫入者線程,都不允許訪問資源。初始化VOID InitializeSRWLock(PSRWLOCK
Time of Update: 2018-12-03
與vector類型相比,數組的顯著缺陷在於:數組的長度是固定的,而且程式員無法知道一個給定數組的長度。數組沒有擷取其容量大小的size操作,也不提供push_back操作的其中自動添加元素。如果需要更改數組的長度,程式員只能建立一個更大的新數組,然後把原數組的所有元素複製到新數組空間中去。現在C++程式更多地使用vector來取代數組,只有當效能測試表明使用vector無法達到必要的速度要求時,才使用數組。數組是由類型名、標識符和維數組成的複合資料型別,類型名規定了存放在數組中的元素的類型,而維
Time of Update: 2018-12-03
建議:只有在必要時才使用後置操作符。前置操作需要做的工作更少,只需要加1後返回加1後的結果即可。而後置操作符則必須先儲存運算元原來的值,以便返回未加1之前的值作為操作的結果。逗號操作符:運算式從左向右計算。逗號運算式的結果是其最右邊運算式的值。new運算式返回指向新建立對象的指標,我們通過該指標來訪問對象。double *pd=new double(33);delete pd;建立動態對象時,(幾乎)總是對它做初始化也是一個好辦法。int *pi=new int;//該處沒有初始化。int
Time of Update: 2018-12-03
何時發生隱式類型轉換1、混合類型運算式中,其運算元被轉換為相同的類型。2、用作條件運算式的被轉換為bool類型3、用一運算式初始化某個變數,或賦值,運算式會轉化為變數的類型。4、函數調用中也可能發生隱式類型轉換。顯式轉換也稱為強制轉換,強制類型轉換符:static_cast、dynamic_cast、const_cast、reinterpret_cast;何時需要強制轉換類型:覆蓋通常的標準轉換,需顯式使用強制類型轉換。double dval;int ival;ival
Time of Update: 2018-12-03
參數傳遞每次調用函數時,都會重新建立該函數所有的形參,此時所傳遞的實參將會初始化對應的形參。形參的初始化與變數的初始化一樣,如果形參具有非參考型別,剛複製實參的值,如果形參為參考型別,則它是實參的別名。非引用實參表示對應實參的局部副本。對這類形參的修改僅僅改變了局部副本的值。一旦函數執行結束,這些局部變數的值也就沒有了。指標形參---不能修改指標的值,但可以修改指標指向的值。如需保護指向的值,則形參需定義為指向const對象的指標。可以將指向const對象的指標初始化為指向非const對象,但不
Time of Update: 2018-12-03
數組形參void printValues(int*);void printValues(int[]);void
Time of Update: 2018-12-03
通過C++擴充, 可以用關鍵字__gc來聲明__gc數組,或者用託管類型來聲明數組。由於__gc數組被建立在託管堆上,所以它在聲明和使用上,和標準(非託管類型)數組相比,有其額外的標準與特點。__gc類型數組被動態建立於託管堆上,數組元素的數量不屬於它定義的內容,同一個陣列變數可以指向不同長度的數組。例如:System::Int32 arr[] = __gc new System::Int32[100];arr = __gc new
Time of Update: 2018-12-03
用C++些檔案拷貝程式遠遠比我想象的要困難的多,和C#僅使用的File類和Directory類相比,直接操作windows api更加有趣。這個過程讓我體會到的不僅僅是api,更多是編寫程式這一個過程的本質。先和大家分享一下My Code,還請各位C++前輩們指教。.h檔案#pragma once#include <string>#include "file.h"using namespace std;namespace Common{ namespace File {
Time of Update: 2018-12-03
1、常量資料地址減去基地址就是它的檔案中的位移地址。2、#define是一個真常量,而const卻是由編譯器判斷實現的常量,是一個假常量。使用const定義的變數,最終還是一個變數,只是在 編譯器內進行了檢查,發現有修改則報錯。3、#define與const的區別:#define編譯期間尋找替換,由系統判斷是否被修改,字串定義在檔案唯讀資料區,資料常量編譯為立即數定址方式,成為二進位代碼的一部分;
Time of Update: 2018-12-03
在標準的C++應用程式中,字串以ASCII格式編碼,而託管類型和應用程式卻不能處理ASCII字串。為瞭解決這個問題,託管的C++採用了將字串無需轉換,賦值給System::String類型的變數的方法。例如:String* s1 = "Hello String";String* s2 = L"Hello String";String* s3 = S"Hello
Time of Update: 2018-12-03
1、不帶正負號的整數所有位都是用來表示數值,沒有符號位;有符號整數最高位為符號位,如何判斷一段資料是有符號類型還是無符號類型,取決於要查看的指令或者已知的函數如何操作此記憶體。2、浮點數類型優點計算效率高,缺點儲存不靈活。3、浮點數操作是通過浮點寄存器來實現的,浮點寄存器是通過棧來實現的,由ST(0)~ST(7)組成。4、字串有兩種方法確實結束位址:儲存總長度、結束符’\0'。5、指標和地址之間的不同點: 指標
Time of Update: 2018-12-03
最近有時間,繼續學習C++,寫了一段遍曆檔案夾的代碼。拿出來希望大家指教。void Common::File::ReadFiles(const wstring &directory,const wstring & extentions, void (* fileMethod)(const wstring &)){ WIN32_FIND_DATA findData; ZeroMemory(&findData,sizeof(findData));//對fi
Time of Update: 2018-12-03
功能:分析出類檔案中,函數的調用層次。現在還是一個簡單版本,只能夠分析出類檔案中函數的調用層次,不能夠分析出屬性的調用層次。先將這個簡單版本放在這裡,畢竟這個功能夠我個人用了。如果有人支援,請冒個泡,我將會繼續前進。版本號碼1.0 這個工具的設計目的是協助專案經理檢查代碼,協助程式員讀代碼。 使用方法: 將要分析的代碼粘貼到1#地區,點擊Parse