Time of Update: 2017-01-19
在使用三層架構開發一個網站時,希望把DataTable對象轉換為List<T>對象,於是在網上找資料,總結一個比較方便的方法來實現——使用反射。思路:初始化一個List<T>對象 擷取到T所有的屬性,初始化一個T對象 遍曆所有屬性,如果DataTable中含有相應屬性的值則為T對象賦值,如果沒有對應的列則檢查資料模型是否定義有誤(屬性名稱與列名比較時不區分大小寫)
Time of Update: 2017-01-19
我們先來看個例子char * strcpy(char * strDest,const char * strSrc) { if ((NULL==strDest) || (NULL==strSrc)) throw "Invalid argument(s)"; char * strDestCopy = strDest; while ((*strDestCopy++ = *strSrc++) != '\0'); return strDest;}突然想到之前做過的一個試題題目:
Time of Update: 2017-01-19
1、原因: 在實現多態時, 當用基類指標操作衍生類別, 在析構時候防止只析構基類而不析構衍生類別。2、例子: (1)、 #include<iostream> using namespace std; class Base{ public: Base() {}; ~Base() {cout << "Output from the destructor of class Base!" << endl;}; void
Time of Update: 2017-01-19
本文執行個體講述了C++刪除指定檔案夾下N天及之前記錄檔的方法。分享給大家供大家參考。具體如下:// 功能:刪除nDays天及之前的記錄檔// @nDays: 0-不刪除日誌,3-刪除3天及之前的日誌(保留今天、昨天、前天的日誌) ...void CRecordLog::ClearLog(UINT nDays) // 刪除N天前的日誌{ if (nDays > 0) { WIN32_FIND_DATA FindFileData; CString sAllFile =
Time of Update: 2017-01-19
二進位檔案不是以ASCII代碼存放資料的,它將記憶體中資料存放區形式不加轉換地傳送到磁碟檔案,因此它又稱為記憶體資料的映像檔案。因為檔案中的資訊不是字元資料,而是位元組中的二進位形式的資訊,因此它又稱為位元組檔案。對二進位檔案的操作也需要先開啟檔案,用完後要關閉檔案。在開啟時要用ios::binary指定為以二進位形式傳送和儲存。二進位檔案除了可以作為輸入檔案或輸出檔案外,還可以是既能輸入又能輸出的檔案。這是和ASCII檔案不同的地方。用成員函數read和write讀寫二進位檔案對二進位檔案的讀
Time of Update: 2017-01-19
C++檔案流類與檔案流對象檔案流是以外存檔案為輸入輸出對象的資料流。輸出檔案流是從記憶體流向外存檔案的資料,輸入檔案流是從外存檔案流向記憶體的資料。每一個檔案流都有一個記憶體緩衝區與之對應。請區分檔案流與檔案的概念,不用誤以為檔案流是由若干個檔案組成的流。檔案流本身不是檔案,而只是以檔案為輸入輸出對象的流。若要對磁碟檔案輸入輸出,就必須通過檔案流來實現。在C++的I/O類庫中定義了幾種檔案類,專門用於對磁碟檔案的輸入輸出操作。除了標準輸入輸出資料流類istream、ostream和iostrea
Time of Update: 2017-01-19
本文執行個體講述了C++二分法在數組中尋找關鍵字的方法。分享給大家供大家參考。具體如下:/* 此程式示範了二分法尋找演算法(針對按從小到大排列的數組)的實現。*/#include <iostream>using namespace std;/* 功能: 實現數組的二分法尋找(只演算法只適合按從小到大排列的數組) 傳回值:關鍵字在數組中的下標, 返回-1表示未找到 a[]: 要搜尋的數組 len: 數組元素個數 key: 要尋找的關鍵字*/int binSearch(
Time of Update: 2017-01-19
C++檔案的概念迄今為止,我們討論的輸入輸出是以系統指定的標準裝置(輸入裝置為鍵盤,輸出裝置為顯示器)為對象的。在實際應用中,常以磁碟檔案作為對象。即從磁碟檔案讀取資料,將資料輸出到磁碟檔案。磁碟是電腦的外部儲存空間,它能夠長期保留資訊,能讀能寫,可以重新整理重寫,方便攜帶,因而得到廣泛使用。檔案(file)是程式設計中一個重要的概念。所謂“檔案”,一般指儲存在外部介質上資料的集合。一批資料是以檔案的形式存放在外部介質(如磁碟、光碟片和隨身碟)上的。操
Time of Update: 2017-01-19
eof 函數eof是end of file的縮寫,表示“檔案結束”。從輸入資料流讀取資料,如果到達檔案末尾(遇檔案結束符),eof函數值為非零值(真),否則為0(假)。[例] 逐個讀入一行字元,將其中的非空白字元輸出。#include <iostream>using namespace std;int main( ){ char c; while(!cin.eof( )) //eof( )為假表示未遇到檔案結束符 if((c=cin.get( ))!=' ')
Time of Update: 2017-01-19
C++ get()函數讀入一個字元get()函數是cin輸入資料流對象的成員函數,它有3種形式:無參數的,有一個參數的,有3個參數的。1) 不帶參數的get函數其調用形式為 cin.get()用來從指定的輸入資料流中提取一個字元(包括空白字元),函數的傳回值就是讀入的字元。 若遇到輸入資料流中的檔案結束符,則函數值返迴文件結束標誌EOF(End Of File),一般以-1代表EOF,用-1而不用0或正值,是考慮到不與字元的ASCII代碼混淆,但不同的C
Time of Update: 2017-01-19
用C++流成員函數put輸出單個字元在程式中一般用cout和插入運算子“<<”實現輸出,cout流在記憶體中有相應的緩衝區。有時使用者還有特殊的輸出要求,例如只輸出一個字元。ostream類除了提供上面介紹過的用于格式控制的成員函數外,還提供了專用於輸出單個字元的成員函數put。如: cout.put('a');調用該函數的結果是在螢幕上顯示一個字元a。put函數的參數可以是字元或字元的ASCII代碼(也可以是一個整型運算式)。如 cout.put(65 +
Time of Update: 2017-01-19
在輸出資料時,為簡便起見,往往不指定輸出的格式,由系統根據資料的類型採取預設的格式,但有時希望資料按指定的格式輸出,如要求以十六進位或八進位形式輸出一個 整數,對輸出的小數只保留兩位小數等。有兩種方法可以達到此目的。一種是使用控制符的方法;第2種是使用流對象的有關成員函數。分別敘述如下。使用控制符控制輸出格式控制格式的使用方法這裡不再贅述,僅舉例說明[例] 用控制符控制輸出格式。#include <iostream>#include
Time of Update: 2017-01-19
C++輸入和輸出的概念我們經常用到的輸入和輸出,都是以終端為對象的,即從鍵盤輸入資料,運行結果輸出到顯示器螢幕上。從作業系統的角度看,每一個與主機相連的輸入輸出裝置都被看作一個檔案。除了以終端為對象進行輸入和輸出外,還經常用磁碟(光碟片)作為輸入輸出對象,磁碟檔案既可以作為輸入檔案,也可以作為輸出檔案。程式的輸入指的是從輸入檔案將資料傳送給程式,程式的輸出指的是從程式將資料傳送給輸出檔案。C++輸入輸出包含以下三個方面的內容:對系統指定的標準裝置的輸入和輸出。即從鍵盤輸入資料,輸出到顯示器螢幕。
Time of Update: 2017-01-19
C++靜態關聯與動態關聯、C++是怎樣實現多態性的在現實生活中,多態性的例子是很多的。我們分析一下人是怎樣處理多 態性的。例如,新生被錄取人大學,在人學報到時,先有一名工作人員審查材料,他的職責是甄別資格,然後根據錄取通知書上註明的錄取的系和專業,將材料轉到有關的系和專業,辦理具體的註冊人學手續,也可以看作調用不同部門的處理常式辦理入學手續。在學
Time of Update: 2017-01-19
C++純虛函數詳解有時在基類中將某一成員函數定為虛函數,並不是基類本身的要求,而是考慮到衍生類別的需要,在基類中預留了一個函數名,具體功能留給衍生類別根據需要去定義。純虛函數是在聲明虛函數時被“初始化”為0的函數。聲明純虛函數的一般形式是 virtual 函數類型 函數名 (參數表列) = 0;關於純虛函數需要注意的幾點: 純虛函數沒有函數體; 最後面的“=0”並不表示函數傳回值為0,它只起形式上的作用,告訴編譯系統“這是純虛函數”;
Time of Update: 2017-01-19
我們知道,在同一類中是不能定義兩個名字相同、參數個數和類型都相同的函數的,否則就是“重複定義”。但是在類的繼承階層中,在不同的層次中可以出現名字相同、參數個數和類型都相同而功能不同的函數。人們提出這樣的設想,能否用同一個調用形式,既能調用衍生類別又能調用基類的同名函數。在程式中不是通過不同的對象名去調用不同派生層次中的同名函數,而是通過指標調用它們。例如,用同一個語句“pt->display( );”可以調用不同派生層次中的display函數,只需在調用前給指標變數 pt
Time of Update: 2017-01-19
我們先來看看下面的代碼:#include<iostream>#include<fstream>#include<cstdlib>using namespace std;class CntCharacters{private: int cnt;public: CntCharacters():cnt(0){} ~CntCharacters(){} void opentxt(char* p) { ifstream fin;
Time of Update: 2017-01-19
多態性(polymorphism)是物件導向程式設計的一個重要特徵。如果一種語言只支援類而不支援多態,是不能被稱為物件導向語言的,只能說是基於對象的,如Ada、VB就屬此類。C++支援多態性,在C++程式設計中能夠實現多態性。利用多態性可以設計和實現一個易於擴充的系統。顧名思義,多態的意思是一個事物有多種形態。多態性的英文單詞polymorphism來源於希臘詞根poly(意為“很多”)和morph(意為“形態”)。在C
Time of Update: 2017-01-19
C++基類與衍生類別的轉換在公用繼承、私人繼承和保護繼承中,只有公用繼承能較好地保留基類的特徵,它保留了除建構函式和解構函式以外的基類所有成員,基類的公用或保護成員的存取權限在衍生類別中全部都按原樣保留下來了,在衍生類別外可以調用基類的公用成員函數訪問基類的私人成員。因此,公用衍生類別具有基類的全部功能,所有基類能夠實現的功能,
Time of Update: 2017-01-19
#include <string>#include <iostream>using namespace std; void main(){複製代碼 代碼如下: ////find函數傳回型別 size_typestring s("1a2b3c4d5e6f7g8h9i1a2b3c4d5e6f7g8ha9i");string flag;string::size_type position;//find 函數 返回jk 在s 中的下標位置 position =