Time of Update: 2018-12-05
抽象:其實就是建立模型的一個過程。你要建立一個類,首先要去想它有哪些變數(這就是資料抽象),要實現哪些功能(這就是行為抽象)。
Time of Update: 2018-12-05
待用資料成員:就是說所有這個類的對象,都公用這個資料成員,你變了一個對象的靜態成員的值,那麼所有的都跟著變了。比如說:class Clock{int Hour, Minute;static int Second; //定義了一個靜態成員}// 函數中調用時:Clock
Time of Update: 2018-12-05
哎,由於上課的時候沒有聽課,導致指標這裡真的是似懂非懂,雖然對寫代碼影響不大,但是總是精確度下了一個檔次,所以今天趁機把這寫個玩意兒弄明白點,省的以後每次都得查。咱們不求文章長,只求內容清楚~ 如果有誰看出了裡面有什麼問題,請幫忙指出來,免得誤導別人~餃子在此先說聲謝謝了~其實關於數組比較好掌握,就是分配某種類型的一個組,這個組的長度必須給出或者初始化,我一開始覺得很不方便,因為有很多情況下我們不知道數組的長度,比如這個數組要由使用者定義之類的情況,但是沒辦法,電腦要為這個數組分配一個記憶體空間
Time of Update: 2018-12-05
類的派生:派生的意思,就是從一個已有類產生新類的過程。 類的繼承,就是一個新的類從一個已有的類那裡得到已有的特性。已有的類稱為父類或基類,新的類稱為子類或衍生類別。定義格式://單繼承class 新類名: 繼承方式 基類{ ......}//多重繼承class 新類名: 繼承方式 基類1, 繼承方式 基類2,......,繼承方式 基類n{
Time of Update: 2018-12-05
網上有很多文章已經詳細講述過sizeof的用法,但是我覺得其實sizeof並沒有那麼複雜。在這兒簡單地再總結一下。1,是什嗎? sizeof其實就是一個運算子,和那些+,-一樣的東西,在程式編譯的時候進行解析轉換。雖然我們經常見到sizeof後面跟著個小括弧,長得和函數差不多,但它和函數完全是兩碼事。2,有什麼用? sizeof其實就是用於告訴我們編譯器在為某一特定資料或者某種資料類型的資料在儲存空間中開闢空間時,開闢的空間大小,以位元組為單位。3,怎麼用?
Time of Update: 2018-12-05
1. 當你使用new時,有兩件事會發生。第一,記憶體被配置(透過函數operator new)。第二,會有一個(或以上)的constructors針對此記憶體被調用。當你使用delete時,也有兩件事發生:一個(或以上)的destructors會針對此記憶體被調用,然後記憶體被釋放(透過函數operator delete)。2. 如果你使用delete是未加括弧,delete便假設刪除對象是單一對象。否則便假設刪除對象是個數組。3.
Time of Update: 2018-12-05
最近兩次面試都問到了多態,我也不得不重視起來了,最近最大的收穫就是:基礎知識很重要,就算你很會寫代碼,但是面試官問你基礎知識答不上來的話,也很難被人賞識和錄用,所以還是要多補補基礎概念,這一篇就說多態。之前第一篇提到過,多態是指同樣的訊息被不同的對象接受時導致不同的行為。分四類:重載多態,強制多態,包含多態和多重參數變形。多態從實現的角度分為 編譯時間多態
Time of Update: 2018-12-05
從會敲代碼開始,我們就知道編譯器的重要性,沒有這東西,我們的代碼就是一堆字元而已。而編譯器編譯器的步驟主要有四個——預先處理、編譯、彙編和連結,最後得到可執行檔目標檔案。 四個步驟各自的工作會是怎麼樣的呢?不知為何,對這個東西有了點興趣。以GCC為例,主要工作是這樣的:預先處理階段會調用cpp,編譯階段會調用cc得到組譯工具,彙編階段調用as得到目標代碼,連結時調用連結程式ld
Time of Update: 2018-12-05
首先,還是得說一下C標準庫的發展史嘍。C89中有15個標準標頭檔: <assert.h> 、<ctype.h> 、 <errno.h>、 <float.h>、 <limits.h>、 <locale.h>、 <math.h> 、 <setjmp.h> 、<signal.h> 、<stdarg.h>、<stddef.h> 、
Time of Update: 2018-12-05
我們知道c語言中的程式中的資料根據分布一般可以分為三種,一種是分布在資料區段中的,一種是分布在棧上的,還有一種分布是堆上。全域變數往往都存放在資料區段中,而函數中聲明的變數一般都存放在棧上,而用malloc或者calloc分配出來的空間則是在堆上。但是我之前一直不知道這資料區段、堆還有棧到底在記憶體上是怎樣分布的,更不知道它們之間的距離是多少,也不會根據資料的指標來判斷資料的類型。但是前些日子,為了跟蹤一個資料莫名被修改的問題,終於對這堆棧的分布有了個形象的瞭解。
Time of Update: 2018-12-05
(原文:http://blog.chinaunix.net/u/18297/showart_296028.html)為了能用上原來的C++代碼,只好研究下從C# 中調用DLL首先必須要有一個聲明,使用的是DllImport關鍵字: 包含DllImport所在的名字空間 using System.Runtime.InteropServices; public class XXXX{[DllImport(“MyDLL.dll")] public static extern int mySum
Time of Update: 2018-12-05
在解析C#結構體指標前,必須知道C#結構體是如何定義的。在c#中同樣定義該結構體。C#結構體指標之C#結構體的定義:[StructLayout(LayoutKind.Sequential)] public struct VGAStat { public int ChannelNum;//通道數量 [MarshalAs(UnmanagedType.ByValArray, SizeConst = 64)]
Time of Update: 2018-12-05
一、擷取當前檔案的路徑1. System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName 擷取模組的完整路徑,包括檔案名稱。2. System.Environment.CurrentDirectory 擷取和設定目前的目錄(該進程從中啟動的目錄)的完全限定目錄。3. System.IO.Directory.GetCurrentDirectory()
Time of Update: 2018-12-05
在做C++的項目中發現,由於用慣了c#的lock(){}和java的Synchronize(){},windows內建的臨界區,互斥量,核心事件,訊號量用起來不太習慣,於是打算自己在vc++中封裝一個類似的東東。封裝這個我決定採用一個臨界區來做,最終的形式如下:synchronize(object){ //....無論此處是否發生異常,object都能被釋放掉。和c#的lock一樣。}不多說,開始代碼。先定義一個Mutex類Code highlighting produced
Time of Update: 2018-12-05
C++與C#管理記憶體方式概述C#最大的一個改進其實就是對記憶體訪問與管理方法的改進。在.NET中記憶體的管理是全權委託給記憶體回收行程,由記憶體回收行程來決定何時該釋放記憶體空間。現在普遍採用兩種技術來釋放程式動態申請的系統記憶體:首先是以C++為代表的必須以手工方式使應用程式程式碼完成這些工作,讓對象維護引用計數。然後是以.NET以及Java使用的記憶體回收行程來完成記憶體釋放工作。在C++中讓應用程式代碼負責釋放記憶體是低級、高效能的語言使用技術。這種技術非常有效,且可以讓資源在不需要時就
Time of Update: 2018-12-05
private void UpdateSheet(string strFilePath, string strSheetName) { Microsoft.Office.Interop.Excel.ApplicationClass xlApp = new ApplicationClass(); Microsoft.Office.Interop.Excel.Workbooks xlWorkbooks;
Time of Update: 2018-12-05
調用Excel的預覽列印頁面 public void ExcelPrint(string strFilePath, string strSheetName) { Microsoft.Office.Interop.Excel.ApplicationClass xlApp = new ApplicationClass(); Microsoft.Office.Interop.Excel.Workbooks xlWorkbooks; Microsoft.
Time of Update: 2018-12-05
public class RequestWeb { private readonly static int TIMEOUT = 15000; private CookieContainer _cookieCon = new CookieContainer(); private CredentialCache _credentials; /// <summary> /// 通過url請求資料 //
Time of Update: 2018-12-05
我們在做winform應用的時候,大部分情況下都會碰到使用多線程式控制制介面上控制項資訊的問題。然而我們並不能用傳統方法來做這個問題,下面我將詳細的介紹。 首先來看傳統方法: CodeCode highlighting produced by Actipro CodeHighlighter
Time of Update: 2018-12-05
動態調用webservice地址範例程式碼:string NameSpace = "MPS.UserManager.ValidateUser"; string ClassName = "ActiveSync"; string Method = "SyncData"; object obj = dyWebService.InvokeWebservice(InterFaceAddress, NameSpace, ClassName, Method, args); 動態調用webservice源碼: