Time of Update: 2018-12-05
1. public class A { public virtual void Fun1(int i) { Console.WriteLine(i); } public void Fun2(A a) { a.Fun1(1); Fun1(5); } } public class B : A { public
Time of Update: 2018-12-05
C++模板元編程,是使用template進行編譯期運算的一種機制,可以認為是C++的一種編程方式。第一個例子:計算整數N的階乘。//模板的一般形式template<int N>class Factorial{public: enum { _result = N * Factorial<N-1>::_result };};//用於結束遞迴規則的特化模板template<>class
Time of Update: 2018-12-05
VC++2010已經支援regex了, 可以用來編譯下述代碼.#include <string>#include <regex>#include <iostream>using namespace std;/* 測試C++11中的Regex. */int main(){ //定義Regex,匹配時間格式 regex testRegex("[0-9]{2}:[0-9]{2}:[0-9]{2}\\.[0-9]{3}"); //要匹配的字串
Time of Update: 2018-12-05
根據sgi 的STL源碼的二級分配演算法改寫的記憶體池分配程式,只要稍微修改就可以實現共用記憶體方式管理,使用C++標準庫容器中的map,set,multimap,multiset測試通過,vector測試通不過,原因是在記憶體回收的時候考慮的比較簡單,vector每次分配記憶體個數不固定,回收也不固定,這樣的話,程式還需要繼續完善。記憶體池管理程式源碼如下:#ifndef MY_ALLOCATOR_H_#define MY_ALLOCATOR_H_#include
Time of Update: 2018-12-05
一、雙指標方法雙指標就是指像指標的指標,比如你可以這樣聲明一個數組和釋放一個數組的空間: //雙指標聲明二維動態數組 int **arr = new int*[x]; //理解雙指標的含義,指標的指標->數組的指標->二維數組 for(int i=0; i < x; ++i) arr[i] = new int[y]; //可以理解為在一個一維數組的某一個位上再開闢一個數組,也就形成二維數組//用delete釋放空間for(int m=0;m
Time of Update: 2018-12-05
文章作者:Slyar 文章來源:Slyar Home (www.slyar.com) 轉載請註明,謝謝合作。 qsort包含在<stdlib.h>標頭檔中,此函數根據你給的比較條件進行快速排序,通過指標移動實現排序。排序之後的結果仍然放在原數組中。使用qsort函數必須自己寫一個比較函數。函數原型:void qsort ( void * base, size_t num, size_t size, int ( * comparator ) ( const void *, const
Time of Update: 2018-12-05
void CreateGrphicMenuWin(){ WNDCLASS wc; RECT rect; ZeroMemory(&wc, sizeof(wc)); ... wc.lpfnWndProc = (WNDPROC)MenuWinProc; ... //RegisterClass(&wc) //CreateWindow //ShowWindow //UpdateWindow}BOOL CALLBACK MenuWinProc(HWND hwnd, UINT msg,
Time of Update: 2018-12-05
VC學習筆記1:按鈕的使能與禁止 用ClassWizard的Member Variables為按鈕定義變數,如:m_Button1; 則 m_Button1.EnableWindow(true); 使按鈕處於允許狀態 m_Button1.EnableWindow(false); 使按鈕被禁止,並變灰顯示 VC學習筆記2:控制項的隱藏與顯示 用CWnd類的函數BOOL ShowWindow(int nCmdShow)可以隱藏或顯示一個控制項。 例1: CWnd
Time of Update: 2018-12-05
來源:http://cbqcgq.blog.hexun.com/8892167_d.html C語言時間函數 [原創 2007-04-16 23:30:50] C語言的標準庫函數包括一系列日期和時間處理函數,它們都在標頭檔中說明。下面列出了這些函數。在標頭檔中定義了三種類型:time_t,struct tm和clock_t。 在標頭檔中說明的C語言時間函數 time_t time(time_t *timer); double difftime(time_t time1,
Time of Update: 2018-12-05
來說說C語言方面的圖書。什麼,C語言?有讀者奇怪了。沒錯,這一次的主角就是誕生於1973年如今已經兒孫滿堂的C語言。我們之所以要談及C,不僅僅是因為它的影響深遠,這完全可以從C系列語言家族的興旺發達得到證明:C++、Java和C#以及Objective
Time of Update: 2018-12-05
當前模組的控制代碼在程式進入點可以獲得,一般做法是儲存為一個全域變數,以後使用這個全域變數即可。但有時在寫一些比較通用的代碼時剛好要用到模組控制代碼,如果還去訪問這個全域變數就破壞了代碼的通用性。下面函數可以取得當前模組的控制代碼,無須儲存,隨調隨得:/*通過一個地址模數塊控制代碼*/inline HMODULE ModuleHandleByAddr(const void* ptrAddr){MEMORY_BASIC_INFORMATION
Time of Update: 2018-12-05
#include "stdio.h"class CObject;class Handler{ public: virtual void Invoke(CObject* sender) = 0;};class CObject{ public: char* name; Handler* handler; public: CObject(char* name) { handler = 0; this->name = name; }
Time of Update: 2018-12-05
/// <summary> 下載檔案</summary> /// <param name="URL">下載檔案地址</param> /// <param name="Filename">下載後的存放地址</param> /// <param name="Prog">用於顯示的進度條</param>
Time of Update: 2018-12-05
C++中的數組和指標 先看兩個定義(聲明)int* aryp[10];int (*pary)[10]; aryp 是一個10個元素的數組,數組中元素類型為int*pary 是一個指標,是指向數組的指標,這個被指的數組的類型為 int[10]這樣看pary的定義會clear一點 typdef int INT_ARY_TEN[10];INT_ARY_TEN* pary; C++是一種強型別(strong
Time of Update: 2018-12-05
C# 深拷貝/淺拷貝深拷貝/淺拷貝和直接指向引用的區別: 深拷貝/淺拷貝都是重新開闢了記憶體空間,並且在新的記憶體空間裡面賦了對象本身的值。 直接指向引用是一個對象直接指向另外一個對象的引用,這兩個對象指向的是同一塊記憶體空間,操作任一個對象都會影響另外的對象。 深拷貝和淺拷貝的區別:
Time of Update: 2018-12-05
C++編譯器產生的預設函數話題引入:對象的賦值與複製是如何進行的?他們的區別是什嗎?如果一個空的自訂類型能否執行這些操作?對象賦值:通過“ =”運算子多載User a(10),b;b = a;對象複製:調用拷貝建構函式User b;User a(b);或者User a = b; //相當於User
Time of Update: 2018-12-05
一、C語言動態記憶體分配 要實現動態記憶體的分配,除了利用含指標成員的結構體之外,還需利用C語言提供的幾個標準庫函數。(使用時應包含標頭檔“alloc.h”或“malloc.h”或“stdlib.h”) 1.malloc函數 函數原型為void *malloc(unsigned int size);在記憶體的動態儲存裝置區中分配一塊長度為"size"位元組的連續地區。函數的傳回值為該地區的首地址。
Time of Update: 2018-12-05
在C++中,類繼承書寫方式如下:衍生類別的聲明class 衍生類別名:繼承方式 基類名{
Time of Update: 2018-12-05
Synchronized vs SyncRoot 我們知道,在.net的一些集合類型中,譬如Hashtable和ArrayList,都有Synchronized靜態方法和SyncRoot執行個體方法,他們之間有聯絡嗎?我怎麼才能用好他們呢?我們以Hashtable為例,看看他們的基本用法: Hashtable ht = Hashtable.Synchronized(new Hashtable());lock
Time of Update: 2018-12-05
四、事件架構非同步模式(設計層面)基於事件的C#非同步編程模式是比IAsyncResult模式更進階的一種非同步編程模式,也被用在更多的場合。該非同步模式具有以下優點:· “在後台”執行耗時任務(例如下載和資料庫操作),但不會中斷您的應用程式。· 同時執行多個操作,每個操作完成時都會接到通知(在通知中可以區分是完成了哪個操作)。· 等待資源變得可用,但不會停止(“掛起”)您的應用程式。·