Time of Update: 2018-12-08
《代碼大全》建議在變數定義的時候進行初始化,但是很多人,特別是新人對結構體或者結構體數組定義是一般不會初始化,或者不知道怎麼初始化。1、初始化複製代碼 代碼如下:typedef struct _TEST_T { int i; char c[10];}TEST_T;TEST_T gst = {1, “12345”};//可以初始化,設定i為1,s為一個字串.TEST_T gst = {1};//初始化個數少於實際個數時,只初始化前面的成員。TEST_Tgst =
Time of Update: 2018-12-08
為了支援c++的多態性,才用了動態綁定和靜態繫結。理解他們的區別有助於更好的理解多態性,以及在編程的過程中避免犯錯誤。需要理解四個名詞:1、對象的靜態類型:對象在聲明時採用的類型。是在編譯期確定的。2、對象的動態類型:目前所指對象的類型。是在運行期決定的。對象的動態類型可以更改,但是靜態類型無法更改。關於對象的靜態類型和動態類型,看一個樣本:複製代碼 代碼如下:class B{}class C : public B{}class D : public B{}D* pD = new
Time of Update: 2018-12-08
解析:CLR支援兩種類型:實值型別和參考型別。用Jeffrey Richter(《CLR via
Time of Update: 2018-12-08
C++程式設計語言是一款應用廣泛,支援多種程式設計的電腦程式設計語言。我們今天就會為大家詳細介紹其中C++多態性的一些基本知識,以方便大家在學習過程中對此能夠有一個充分的掌握。多態性可以簡單地概括為“一個介面,多種方法”,程式在運行時才決定調用的函數,它是物件導向編程領域的核心概念。多態(polymorphisn),字面意思多種形狀。C++多態性是通過虛函數來實現的,虛函數允許子類重新定義成員函數,而子類重新定義父類的做法稱為覆蓋(override),或者稱為重寫。(這裡我覺得要補充,重寫的話可
Time of Update: 2018-12-08
C#字串常見操作總結詳解(1)取字串長度 <string>.Length;(2)字串轉為位元碼 GetBytes(<string>)(3)字串相加 推薦StringBuilder sb = new StringBuilder();sb.Append(<string>);(4)截斷字串的一部分 變數.SubString(起始位置,截取位元);(5)查指定位置是否為空白字元 char.IsWhiteSpace(字串變數,位元);(6)
Time of Update: 2018-12-08
•readonly和const都是用來標識常量的[1]。•const可用於修飾class的field或者一個局部變數(local
Time of Update: 2018-12-08
類和結構的區別:1.一個是參考型別一個是實值型別Class是參考型別,繼承自System.Object類Struct是實值型別,繼承自System.ValueType類,因此不具有多態性因為結構是實值型別,所以結構之間賦值可以建立新的結構,複製包含結構的變數時,講複製所有的資料,對新的副本所作的修改都不會改變舊副本的資料,而類是參考型別,類之間的賦值只是複製引用。2.
Time of Update: 2018-12-08
什麼是原廠模式?類比生活中的概念,當我們需要打電話的時候,我們需要一部手機,我們通常會選擇直接去賣手機的實體店買。但在程式設計中,當我們需要調用一個類(PhoneA或PhoneB)的方法的時候,我們往往還要關心他是怎麼new出來的(見程式碼片段1)。這就好比我們自己還要去工廠裡面告訴他們你要怎麼生產出一部我需要的手機。而我們只關心他能不能打電話,你怎麼做的關我屁事。所以這就有了原廠模式。原廠模式其實就是抽象出一個工廠,我需要什麼手機,去哪個工廠買就行了。我不必關心他的製作過程,你只要能生產我要的
Time of Update: 2018-12-08
在寫程式時,我們經常要輸出,比如printf,cout,當你要輸出運算式的值,並要在前面輸出運算式的形式時,有時會有點麻煩!比如cout<<"a*b(c-d):"<<a*b(c-d)<<endl;有時像"a*b(c-d):"這樣的運算式懶得寫,或很多這樣的運算式,寫起來也浪費時間,我們可以用“#”來減少麻煩!貌似沒說清楚,舉個例子:複製代碼 代碼如下:#include <iostream> using namespace std;#define
Time of Update: 2018-12-08
最近做了個題目,遇到了要將字串前後空格消除的細節問題。在Java中好像有一個字串函數為trim()可以消除字串後的空格。對於c++,查了一下,可以引用一個c++標準庫Boost,可以輕鬆解決,但要下載,設定環境變數,因而沒去弄。當然還可以用Regex進行匹配,但似乎都大材小用。不如就用substr()函數,而且string有find_last_not_of,find_first_not_of等等屬性,已經夠我們解決問題了。複製代碼 代碼如下:#include <iostream> #
Time of Update: 2018-12-08
在C# Winform 應用程式中,擷取某網頁的源檔案,可以用以下方法:首先引入名稱空間using System.IO;using System.Net;複製代碼 代碼如下:WebClient MyWebClient = new WebClient();MyWebClient.Credentials = CredentialCache.DefaultCredentials;//擷取或設定用於向Internet資源的請求進行身分識別驗證的網路憑據Byte[] pageData =
Time of Update: 2018-12-08
win7下無法向c盤寫入檔案,目前使用者只能向自己的使用者檔案夾寫入檔案,比如MyDocuments,檔案夾,用c#得到這些檔案夾的目錄方法是:複製代碼 代碼如下:string path=System.Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments); Environment.SpecialFolder 枚舉說明: CommonApplicationData
Time of Update: 2018-12-08
Windows作業系統的版本號碼一覽作業系統 PlatformID 主要版本號 副版本號碼 Windows95 1 4 0 Windows98 1 4 10 WindowsMe 1 4 90 WindowsNT3.5 2 3 0 WindowsNT4.0 2 4 0 Windows2000 2 5 0 WindowsXP 2 5 1 Windows2003 2 5 2 WindowsVista 2 6 0 Windows7 2 6 1 Windows8
Time of Update: 2018-12-08
在我們編寫用戶端應用程式時,經常要用到滑鼠當前的位置。在C#winform中,可以用Control.MousePosition獲得當前滑鼠的座標,使用PointToClient計算滑鼠相對於某個控制項的座標,如下Point screenPoint = Control.MousePosition;//滑鼠相對於螢幕左上方的座標Point formPoint = this.PointToClient(Control.MousePosition);//滑鼠相對於表單左上方的座標Point
Time of Update: 2018-12-08
在C#中和鍵盤相關的事件相對比較少,大致就三種:"KeyDown"、"KeyUp"和"KeyPress"。(1).如何在C#程式中定義這些事件:C#中描述"KeyDown"、"KeyUp"的事件的Delegate是"KeyEventHandler"。而描述"KeyPress"所用的 Delegate是"KeyPressEventHandler"。這二個Delegate都被封裝在命名空
Time of Update: 2018-12-08
以下這段C#代碼實現的功能是在螢幕上畫圖的效果!具體代碼如下:複製代碼 代碼如下://DllImport所在的名字空間 using System.Runtime.InteropServices;[DllImport("User32.dll")]public extern static System.IntPtr GetDC(System.IntPtr hWnd); private void button19_Click(object sender, EventArgs e){
Time of Update: 2018-12-08
假定建立了XmlWriter的執行個體變數xmlWriter,下文中將使用此執行個體變數寫Xml1.如何使用XmlWriter寫Xml文檔聲明複製代碼 代碼如下:// WriteStartDocument方法可以接受一個bool參數(表示standalone,是否為獨立文檔)或者不指定參數standalone保持預設值 xmlWriter.WriteStartDocument(false|true);
Time of Update: 2018-12-08
在C# winform 應用程式中,對於鍵盤響應事件,經常使用到"KeyPress"、“KeyUp”、"KeyDown"事件,可以處理某個按鍵的自訂處理事件。有時想定義方向鍵的自訂處理事件時,你可以發現,雖然自訂的處理事件發生了響應,但是也可以看到,按下方向鍵時,發現表單上控制項的焦點也發生了切換。而這種結果不是我們想要的,我們不想按下方向鍵時,控制項的焦點發生切換,只想響應我們自訂的處理函數即可。下面的方法可以取消方向鍵對控制項焦點的控制:複製代碼 代碼如下:protected
Time of Update: 2018-12-08
checked 和 unchecked關鍵字用來限定檢查或者不檢查數學運算溢出的;如果使用了checked發生數學運算溢出時會拋出OverflowException;如果使用了unchecked則不會檢查溢出,算錯了也不會報錯。1. 一段編譯沒通過的代碼複製代碼 代碼如下:int a = int.MaxValue * 2;以上程式碼片段編譯沒有通過,在VS2010中會有一條紅色的波浪線指出這段代碼有問題:”The operation overflows at compile time in
Time of Update: 2018-12-08
同步方法和非同步方法呼叫的區別同步方法調用在程式繼續執行之前需要等待同步方法執行完畢返回結果非同步方法呼叫則在被調用之後立即返回以便程式在被呼叫者法完成其任務的同時執行其它操作非同步編程概覽.NET Framework 允許您非同步呼叫任何方法。定義與您需要調用的方法具有相同簽名的委託;公用語言運行庫將自動為該委託定義具有適當簽名的 BeginInvoke 和 EndInvoke 方法。BeginInvoke