Time of Update: 2018-12-03
C# 編程指南如何:使用字典儲存事件執行個體(C# 編程指南) accessor-declarations 的一種用法是公開大量的事件但不為每個事件分配欄位,而是使用字典來儲存這些事件執行個體。這隻有在具有非常多的事件、但您預計大部分事件都不會實現時才有用。樣本C#複製代碼public delegate void EventHandler1(int i);public delegate void EventHandler2(string s); publicclass
Time of Update: 2018-12-03
今日網上看到有人用C++實現了binder通訊的小例子,但是沒有給出完整的demo,自己弄了過來整理了一下,可以在真機上運行。基本架構都是一樣,代碼就不分析了,要分析又得說一遍binder的機制,反正就可以把它當作一個模板來用了,要增加或修改函數,也就是在ITest中增加virtual函數,分別在bp, bn,class Test端實現,並在onTransact中增加case分支即可,夠簡單吧,代碼如下:binder_test.h:#ifndef __BINDER_TEST_H#define _
Time of Update: 2018-12-03
C# 編程指南匿名方法(C# 編程指南) 在 2.0 之前的 C# 版本中,聲明委託的唯一方法是使用命名方法。C# 2.0 引入了匿名方法。要將代碼塊傳遞為委託參數,建立匿名方法則是唯一的方法。例如:C#複製代碼// Create a handler for a click eventbutton1.Click += delegate(System.Object o, System.EventArgs e) {
Time of Update: 2018-12-03
1.Linux檔案系統 Linux支援多種檔案系統,如ext、ext2、minix、iso9660、msdos、fat、vfat、nfs等。在這些具體檔案系統的上層,Linux提供了虛擬檔案系統(VFS)來統一它們的行為,虛擬檔案系統為不同的檔案系統與核心的通訊提供了一致的介面。給出了Linux中檔案系統的關係: 在Linux平台下對檔案編程可以使用兩類函數:(1)Linux作業系統檔案API;(2)C語言I/O庫函數。
Time of Update: 2018-12-03
來自:http://hi.baidu.com/litomboy/blog/item/08dade95a32c3148d0135e38.html其他http://www.zeliu.com/digg_view.asp?id=112題1:編寫一個函數,作用是把一個char組成的字串迴圈右移n個。比如原來是“abcdefghi”如果n=2,移位後應該是“hiabcdefgh” 函數頭是這樣的://pStr是指向以''結尾的字串的指標//steps是要求移動的nvoid LoopMove (
Time of Update: 2018-12-03
很多C/C++的初學者,常常被一些複雜的聲明語句弄得暈頭轉向,滿頭霧水。比如說:char *(*(*a[])())(),這個聲明是什麼意思呢? 不用抓耳撓腮,在linux環境下,有一個工具能幫我們解析,它就是cdecl 。它能在C/C++聲明和英語間轉換。讓我們先看看man cdecl裡的描述吧:DESCRIPTION Cdecl (and c++decl) is a program for encoding and decoding C (or C++)
Time of Update: 2018-12-03
題目是#include <iostream> int main(){ std::cout<<"This is in main"<<std::endl; return 0;}如何在不修改上述代碼中mian()裡面的部分,使輸出的內容為:StartThis is in
Time of Update: 2018-12-03
基本知識:在核心編程中,可能經常會有一些資料結構需要反覆使用和釋放,按照通常的思路,可能是使用kmalloc和kfree來實現。但是這種方式效率不高,Linux為我們提供了更加高效的方法——Slab快取管理器。動態建立固定大小的記憶體對象,雖然kmalloc的時間複雜度並不大,但是聯絡到空間複雜度,還是採用kmem_cache_alloc的好;而非固定大小的記憶體申請,只能經由kmalloc來解決。 xfrm_input.c中關於kmem_cache_alloc的代碼:(按檔案中代碼的順序) 先
Time of Update: 2018-12-03
C的開發人員會經常使用#define,即用宏來聲明常量,但宏卻是全域的,對大的工程很難維護,經常是導致名字衝突。還好,C++給我們帶來了namespace名字空間。它的使用如下,名字空間可以把一組邏輯分組,同時名字空間也是一種範圍。view plaincopy to
Time of Update: 2018-12-03
/********************************** 雙色球自動選號**********************************/#include <cmath>#include <iostream>#include <ctime>using namespace std;int main(){ int *A = new int[6]; srand((unsigned int)time(0));
Time of Update: 2018-12-03
C++/OPP/OOD系列:層級一:文法/語意(C++)[Lippman2000] Essential C++Essential C++,by Stanley B. Lippman Addison Wesley Longman 2000,276 pagesEssential C++ 中文版 ,侯俊傑 譯,282頁 [Gregory95] C++:The Core Language C++:The Core Language by Gregory Satir 1995
Time of Update: 2018-12-03
簡介 對於很多初學者來說,往往覺得回呼函數很神秘,很想知道回呼函數的工作原理。本文將要解釋什麼是回呼函數、它們有什麼好處、為什麼要使用它們等等問題,在開始之前,假設你已經熟知了函數指標。
Time of Update: 2018-12-03
原則上,C++類中私人變數不允許在類之外的其他任何地方訪問,一般來說功能完善的類都會提供get,set方法來操作類屬性值,但如果沒有get、set方法都沒有提供,比如使用的是第三方提供的.o(或者動態庫)來進行開發的,並且實際應用中我們確確實實需要改變其中某個對象的一個私人參數,有沒有什麼辦法呢?我們知道,一個進程有程式段和資料區段,如果我們知道了對象的資料空間,那麼得到該對象的成員變數值也就很簡單了,而實際上,對象資料區段的首地址其實就是對象地址,以例子說明:class
Time of Update: 2018-12-03
將類成員函數用做C回呼函數提出問題: 回呼函數是基於C編程的Windows SDK的技術,不是針對C++的,程式員可以將一個C函數直接作為回呼函數,但是如果試圖直接使用C++的成員函數作為回呼函數將發生錯誤,甚至編譯就不能通過。分析原因:
Time of Update: 2018-12-03
源自CSDN討論貼:http://topic.csdn.net/t/20060525/10/4777451.html 樓主cuipy(崔鵬宇)2006-05-25 10:51:58 在 C/C++ / C++ 語言 提問 我用try{正常代碼執行}catch(...){處理},來處理異常,但為什麼到出錯的地方還是出錯呢? 我看了資料說要在異常發生的時候自己拋出,那我要知道那裡出現異常,我還不解決了丫?感覺不靠譜,望指教這個異常到底怎麼處理。1
Time of Update: 2018-12-03
文章出處:http://hi.baidu.com/%CF%F4%CA%AE%C8%FD%C0%C9/blog/item/651b47dad560f8d1b7fd48f1.html 多態是OO的一大特點,通常我們把只有純虛函數的抽象類別,叫做介面類(Interface Class),或者是協議(Protocol Class)。 習慣上類名會用大寫I開頭,但這不是必須的,比如下面一個類聲明。 class IPool { public:
Time of Update: 2018-12-03
fstream流的eof()判斷有點不合常理 按常理邏輯來說,如果到了檔案末尾的話,eof()應該返回真,但是,C++輸入輸出資料流如何知道是否到末尾了呢? 原來根據的是:如果fin>>不能再讀入資料了,才發現到了檔案結尾,這時才給流設定檔案結尾的標誌,此後調用eof()時,才返回真。 假設 find>>x; //此時檔案剛好讀完最後一個資料(將其儲存在x中) 但是,這時fin.eof()仍為假,因為
Time of Update: 2018-12-03
目的:正確理解c++的異常處理機制 學習異常處理的定義及執行過程內容:定義一個異常類CException ,有成員函數Reason(),用來顯示異常的類型,在子函數中觸發異常,在主程式中處理異常,觀察程式的執行流程。三 實驗任務:在類CException的成員函數Reason()中用cout顯示異常的類型,在函數fn1()中用throw觸發異常,在主函數的try模板中調用
Time of Update: 2018-12-03
1、誤將十進位數寫成八進位測試: int i = 10; int j = 010; int p = 0x10; printf("i = %d/n", i); printf("j = %d/n", j); printf("p = %d/n", p); 2、’yes’和”yes”的混淆使用測試:printf("%c/n", '12');註解:在BorlandC+
Time of Update: 2018-12-03
建立C++線程 #include <windows.h>#include <conio.h>DWORD WINAPI ThreadFunc()// LPVOID lpParam ) { char szMsg[80]; //wsprintf( szMsg, "Parameter = %d.", *(DWORD*)lpParam ); MessageBox( NULL, "szMsg", "ThreadFunc", MB_OK ); return