① 1 private void GetIP() 2 { 3 string hostName = Dns.GetHostName();//本機名 4 //System.Net.IPAddress[] addressList = Dns.GetHostByName(hostName).AddressList;//會警告GetHostByName()已到期,我運行時且只返回了一個IPv4的地址 5 System.Net.IPAddress[]
C++中記憶體流失的檢測 首先我們需要知道程式有沒有記憶體泄露,然後定位到底是哪行代碼出現記憶體泄露了,這樣才能將其修複。最簡單的方法當然是藉助於專業的偵查工具,比較有名如BoundsCheck,功能非常強大,相信做C++開發的人都離不開它。此外就是不使用任何工具,而是自己來實現對記憶體泄露的監控,分如下兩種情況:一. 在 MFC 中檢測記憶體流失假如是用MFC的程式的話,很簡單。預設的就有記憶體泄露檢測的功能。我們用VS2005產生了一個MFC的對話方塊的程式,發現他可以自動的檢測記憶體泄露.
1、輔助性“比較操作符”有四個template functions,分別定義了!=, >, <=, >=四個比較操作符,它們都是利用==, <來完成的,定義於<utility> namespace rel_ops { // nested namespace to hide relational operators from stdtemplate<class _Ty> inline bool operator!=(
昨天晚上在群裡聊天時,有位朋友問一道百度的筆試題如何解答,當時好像並沒有人能夠按照要求解答出來,我今天用工作之餘的時間想了出來,但不知對否,用vc6可以跑,並且執行正確。大家來多提提意見。 題目是這樣的:百度面試題,假設一整型數組存在若干正數和負數,現在通過某種演算法使得該數組的所有負數在正數的左邊,且保證負數件和正數間元素相對位置不變。時空複雜度要求分別為:o(n),o(1)例如 -3 4 2 -1 7 3 -5 排序後 -3 -1 -5 4 2 7
static用來修飾一個函數的時候,表示的意思如下: 1、表示該方法只在本c檔案中有效。在其他c檔案中無法訪問這個方法。 2、static的方法的定義一般不放在.h檔案中,因為這個方法只在一個c檔案中有效。一般直接將該方法定義在c檔案的開頭部分就可以了。 3、一般申明這種方法用來封裝一些邏輯,和物件導向的private有點類似。比如,我們申明一個方法為static,然後申明一堆其他的方法
1、對於單個類來說,這三個範圍限定符的意義如下: 公有成員(public member) 在程式的任何地方都可以被訪問。實行資訊隱藏的類將其public 成員限制在成員函數上,這種函數定義了可以被一般程式用來操縱該類類型對象的操作 私人成員(private member) 只能被成員函數和類的友元訪問。實行資訊隱藏的類把其資料成員聲明為private 被保護成員(protected member) 對衍生類別derived class 就像public
第八章有個例子,非常簡單,就是讀入使用者輸入,賦給一個int,這裡面有一個判斷,就是如果使用者輸入的不是int,那麼,cin就會變成invalid,裡面就有condition state,於是我們可以catch這個state並clear,然後繼續讀入。 但是書上給的例子有個錯誤,原來的程式是這樣的: Code: Select all#include <iostream>#include <stdexcept>using namespace std;int
閱讀了C++ Primer 4th第七章,有了明確的答案。 首先,函數的參數。 如果參數類型不是reference的,那麼,函數的調用方壓入的參數(我們稱之為argument,函數本身的參數我們稱為 parameter,兩者區分來),會被copy一份,然後被賦予到parameter中。如果很不幸這個參數是個vector,那麼,整個 vector,包括裡面所有的元素,都會被copy一份,這就是參數拷貝。 如果參數類型是reference類型的,那麼,就不會有上述的參數拷貝的過程。
union和struct的區別在於: 1、對於一個union類型的變數,所有成員變數共用一塊記憶體,該記憶體的大小有這些成員變數中長度最大的一個來決定 2、union分配的記憶體是連續的,這一點非常重要。 更具體的看這裡,還有測試代碼呢(附件1): 那為什麼要發明union呢?這是由於union的特性決定的,特別是上述的第二點,因為struct中成員變數雖然記憶體都是獨立的,但是struct不能保證分配的記憶體是連續的。
chapter 1: 1、目前對ISO98標準的C++支援的較好的編譯器有gcc和VC7.1(Visual Studio .NET 2003) 2、由於各平台和編譯器的不同實現,導致了C++標頭檔的副檔名(suffix)不統一,所以目前的C++標準中,標頭檔不帶任何尾碼,如#include <iostream>,不再是#include <iostream.h>等類似的寫法 3、目前的C++標準,要調用任何庫,必須使用namespace,如using namespace
文章目錄 一 、Linux 作業系統來源 二、Linux基本知識三 、 Linux下C編程入門 本文原創 ,轉載必須註明出處
C#反射(二)
using System;using System.Windows.Forms;using System.Data;using System.Data.SqlClient;namespace DataBaseSpace{ class DataBase { // Constructor DataBase public DataBase() { } // Statement Sqlconnection conn private
C#時間間隔計算可以通過時幅類TimSpan類實現,這是一個系統類別。C#時間間隔計算舉例說明:實現兩個時間之間C#時間間隔計算: TimeSpan ts1 = new TimeSpan(DateTime.Now.Ticks); //擷取目前時間的刻度數 //你的代碼或者其他動作 TimeSpan ts2 = new TimeSpan(DateTime.Now.Ticks); TimeSpan ts = ts2.Subtract(ts1).Duration(); //時間差的絕對值
app.config 中一部份代碼<configuration><appSettings> //注意要加上這個,否責會報錯,“什麼為能初始化之類”<add key="ConnSqlStr" value="資料庫連結欄位"/> // 要用像
有一種需求叫做變態,這有個例子:客戶的系統使用了一個架構庫,就是依據配置動態添加控制項到一個主視窗的那種,即將被嵌入的程式卻是一個MDI主視窗,同事電話尋求協助.咋辦?變態!於是想到以前在VC6時代,將自己的視窗嵌入MSDN協助的經曆,使用API試試,於是花了幾分鐘寫了個測試,用手機拍照發多媒體訊息過去,同事努力一把,算是解決的.有意思的是,提供架構的一方,之前也在努力協助此次嵌入工作而無果,看見我們的代碼也大為感慨.是不是有點無理,別忘了,沒有C#時,我們什麼都是這樣乾的.
//取得某月的最後一天 //方法一:使用算出該月多少天,年+月+加上多少天即得,舉例取今天這個月的最後一天 private void GetLastDateForMonth(DateTime DtStart, out DateTime DtEnd) { int Dtyear, DtMonth; DtStart = DateTime.Now; Dtyear = DtStart.Year; DtMonth =
1.目錄結構最頂層目錄用模組名稱,這裡是demo。2.源檔案放在模組下的src子目錄中,即demo/src,一切遵循慣例,有多個子模組時,各個子模組的原始碼放在各自的目錄裡。3.建立源檔案 demo/src/hello.c4.建立Makefile模板 內容為:# demo/Makefile.amSUBDIRS=src SUBDIRS=src 這裡只有簡單的一行代碼,表示其下有一個src的子目錄,如果有多個子目錄,用空格分開就行了。#
1、使用ref型參數時,傳入的參數必須先被初始化。對out而言,必須在方法中對其完成初始化。2、使用ref和out時,在方法的參數和執行方法時,都要加Ref或Out關鍵字。以滿足匹配。3、out適合用在需要retrun多個傳回值的地方,而ref則用在需要被調用的方法修改調用者的引用的時候。在C#中,方法的參數傳遞有四種類型:傳值(by value),傳址(by reference),輸出參數(by output),數組參數(by array)。樣本:代碼Code highlighting
在實現堆棧類之後,我們來實現隊列類,其實隊列也是鏈表的擴充,它其實是一種特殊的鏈表,如堆棧一樣,它和堆棧的不同在於,堆棧採用的是先進後出原則,而對列採用的是先進先出原則。什麼是先進後出呢?在日常生活中也到處可見它,比如:買火車票,大家都要排隊,先來的先買票,後來的在後面排隊,在隊伍中隨便插入是不合法的。等到前面買完之後,自己才可以買票。當然這隻是個小執行個體,隊列在程式設計中是基礎的編程技術,現在我們來用才C#實現它。如:是隊列入隊和出隊的操作過程。 1 在入隊過程中: