Time of Update: 2018-12-08
mutable關鍵字關鍵字mutable是C++中一個不常用的關鍵字,他只能用於類的非靜態和非常量資料成員我們知道一個對象的狀態由該對象的非待用資料成員決定,所以隨著資料成員的改變,對像的狀態也會隨之發生變化!如果一個類的成員函數被聲明為const類型,表示該函數不會改變對象的狀態,也就是該函數不會修改類的非待用資料成員.但是有些時候需要在該類函數中對類的資料成員進行賦值.這個時候就需要用到mutable關鍵字了例如:複製代碼 代碼如下:class Demo{public: Demo(){
Time of Update: 2018-12-08
在函式宣告或定義中函數傳回型別前加上關鍵字inline即把min()指定為內聯。 inline int min(int first, int secend) {/****/};inline函數對編譯器而言必須是可見的,以便它能夠在調用點內展開該函數。與非inline函數不同的是,inline函數必須在調用該函數的每個文字檔中定義。當然,對於同一程式的不同檔案,如果inline函數出現的話,其定義必須相同。對於由兩個檔案compute.C和draw.C構成的程式來說,程式員不能定義這樣的min()
Time of Update: 2018-12-08
題目:寫一個函數,求兩個整數的之和,要求在函數體內不得使用+、-、×、÷。 分析:這又是一道考察發散思維的很有意思的題目。當我們習以為常的東西被限制使用的時候,如何突破常規去思考,就是解決這個問題的關鍵所在。看到的這個題目,我的第一反應是傻眼了,四則運算都不能用,那還能用什麼啊?可是問題總是要解決的,只能開啟思路去思考各種可能性。首先我們可以分析人們是如何做十進位的加法的,比如是如何得出5+17=22這個結果的。實際上,我們可以分成三步的:第一步只做各位相加不進位,此時相加的結果是12(個位元5
Time of Update: 2018-12-08
代碼如下所示:複製代碼 代碼如下:#include <stdio.h>#include <stdlib.h>#define N 10 //算N的階乘int main(){ //數組 1位 1! int ary[N] = {1, 1}; int i, j; for (i = 2; i <= N; i++) { //各個下標的階乘,第0位下標是位元,所以從第1位開始 for (j = 1; j <
Time of Update: 2018-12-08
題目:求1+2+…+n,要求不能使用乘除法、for、while、if、else、switch、case等關鍵字以及條件判斷語句(A?B:C)。 分析:這道題沒有多少實際意義,因為在軟體開發中不會有這麼變態的限制。但這道題卻能有效地考查發散思維能力,而發散思維能力能反映出對編程相關技術理解的深刻程度。通常求1+2+…+n
Time of Update: 2018-12-08
1. inline:定義內嵌函式,該關鍵字是基於定義,如果只在函式宣告時給出inline,則函數不會被認為是內嵌函式,所以必須在函數定義的地方也加上inline,同時inline只是向編譯器建議函數以內嵌函式處理,不是強制的。2.
Time of Update: 2018-12-08
對於實值型別,如果對象的值相等,則相等運算子 (==) 返回 true,否則返回 false。對於string 以外的參考型別,如果兩個對象引用同一個對象,則 == 返回 true。對於 string 類型,== 比較字串的值。==操作比較的是兩個變數的值是否相等。equals()方法比較的是兩個對象的內容是否一致.equals也就是比較參考型別是否是對同一個對象的引用。對於實值型別的比較,這裡就不做描述了,下面討論參考型別的比較:首先我們看一段程式複製代碼 代碼如下:using System;
Time of Update: 2018-12-08
C#方法1:執行個體構造器和類2:執行個體構造器和結構3:類型構造器4:操作符重載方法5:轉換操作符方法6:擴充方法7:部分方法1:執行個體構造器和類構造器是允許將類型的執行個體初始化為良好狀態的一種特殊方法,建立一個參考型別的執行個體時,先為執行個體的資料欄位分配記憶體,然後初始化對象的附加欄位(類型對象指標和同步索引),最後調用建構函式來設定對象的初始狀態。建構函式不能被繼承,所以不能被virtual、new、override、sealed和abstract修飾,若沒有顯示定義任何建構函式,
Time of Update: 2018-12-08
第一、四個用途 用途一: 定義一種類型的別名,而不只是簡單的宏替換。可以用作同時聲明指標型的多個對象。比如:char* pa, pb; // 這多數不符合我們的意圖,它只聲明了一個指向字元變數的指標, // 和一個字元變數;以下則可行:typedef char* PCHAR; // 一般用大寫PCHAR pa, pb; // 可行,同時聲明了兩個指向字元變數的指標雖然:char *pa,
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
在上一篇裡已經向大家介紹了如何使用GDI+繪製簡單的映像,這一片繼續向大家介紹其它一些繪圖知識.1.首先我們來看下上一片中我們使用過的Pen.Pen的屬性主要有: Color(顏色),DashCap(短劃線終點形狀),DashStyle(虛線樣式),EndCap(線尾形狀), StartCap(線頭形狀),Width(粗細)等.我們可以用Pen 來畫虛線,帶箭頭的直線等複製代碼 代碼如下:Pen p = new Pen(Color.Blue,
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
最近對GDI+這個東西接觸的比較多,也做了些簡單的執行個體,比如繪圖板,仿QQ等. 最早接觸這個類,是因為想做仿QQ的效果.巧的很,學會了如何做後,.NET課堂上老師也正巧要講關於c#繪圖方面的知識,並且我自己又在網上學習金老師的培訓班,也是要用到這個類.在學習中有一些體會,所以準備把這些體會記下來,因為內容比較多,可能我會分幾次寫.廢話不多說了,我們先來認識一下這個GDI+,看看它到底長什麼樣.GDI+:Graphics Device Interface
Time of Update: 2018-12-08
要想完成這個功用,首先要瞭解一下在C#中如何調用API(利用程式交口)函數。固然在.Net架構中已經降求了很多類庫,400電話,這些類庫的功效也非常強盛,但關於一些Windows頂層編程來道,仍是要通過調用這些API函數才可以實現。一切API皆在"Kernel"、"User "和"GDI"三個庫中得以運轉:其中"Kernel",他的庫名為 "KERNEL32.DLL", 他重要用於發生取操做體系之間的聯絡關係,譬如:程式載入,上下文挑選,檔案輸進輸出,記憶體治理等等。"User
Time of Update: 2018-12-08
在我們深入探討C#序列化和還原序列化之前我們先要明白什麼是序列化,它又稱序列化,是.NET運行時環境用來支援使用者定義型別的流化的機制。序列化就是把一個對象儲存到一個檔案或資料庫欄位中去,還原序列化就是在適當的時候把這個檔案再轉化成原來的對象使用。其目的是以某種儲存形成使自訂對象持久化,或者將這種對象從一個地方傳輸到另一個地方。.NET架構提供了兩種序列化的方式:1、是使用BinaryFormatter進行序列化;2、使用SoapFormatter進行序列化;3、使用XmlSerializer進
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
前幾篇我已經向大家介紹了如何使用GDI+來繪圖,並做了一個的執行個體,這篇我向大家介紹下如何來做一個類似windows畫圖的工具.個人認為如果想做一個功能強大的繪圖工具,那麼單純掌握GDI還遠遠不夠,我的目前也只能做一個比較簡單的繪圖工具了.不足之處,歡迎大家討論!先來看一下最終效果吧:主要實現功能:畫直線,矩形,橡皮,圓形,切換顏色,開啟圖片,儲存圖片,清除圖片,手動調節畫布大小;軟體剛啟動時,為一張空白畫布,我們可以直接在畫布上繪畫,也可以通過菜單中的“開啟”,匯入一張圖片,然後我們就可以在
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
鉤子(Hook),是Windows訊息處理機制的一個平台,應用程式可以在上面設定子程以監視指定視窗的某種訊息,而且所監視的視窗可以是其他進程所建立的。當訊息到達後,在目標視窗處理函數之前處理它。鉤子機制允許應用程式截獲處理window訊息或特定事件。
Time of Update: 2018-12-08
今天一位同事想寫一個全螢幕的代碼。當然要實現的第一步是能夠擷取整個螢幕的位元影像,記得Win32 API的CreateDC, BitBlt等函數可以使用。於是上網查了下,果然螢幕用這些函數。但winform已經可以把API都忘記了,所以得尋找一個無Win32 API的實現方式。綜合了網上的實現,以及自己的一些設計,實現思路如下:1.