Time of Update: 2017-02-27
梳理了下需求,大體如下:進程(Process)。進程是Erlang中一個虛擬運行單位。既不是作業系統的進程,也不 是線程,而是比線程更加輕量的單位,更接近於協程。命名進程(NamedProcess)。命名進程的好處是,你可以向一個不知道進程ID的進程發送 訊息。由於進程可能會宕掉(crash),進程ID可能會發生變化,所以在考慮了異常的環境下
Time of Update: 2017-02-27
熟悉模板編程的朋友或許聽到過這個技巧或者模式:Barton-Nackmann 技巧或者稱 奇異 迴圈模板模式(Curiously Recurring Template Prattern)。其實在 《c++ 編程語 言》這本bible 書裡,在模板那章提到過一個很奇妙的類的實現,用的就是這個技術。當時 ,我就被C++模板技術歎為觀止。近期在學boost庫時偶然碰到了這個技巧,同時在寫一個類 時引發了我的思考,這裡就利用這個技巧來實現,靜態多態函數(我自己發明的叫法,呵呵
Time of Update: 2017-02-27
1、每個類必須有一個建構函式,否則沒法建立對象;2、若programer沒有提供任何建構函式,則C++提供一個預設的建構函式,該預設構造函 數是無參建構函式,它僅負責建立對象,不做任何初始化的工作;3、只要programer定義了一個建構函式(不管是無參還是有參構造),C++就不再提供默 認的預設建構函式。即如果為類定義了一個帶參的建構函式,還想要無參建構函式,就必須 自己定義;4、與變數定義類似,在用預設建構函式建立對象時,如果建立的是全域對象或靜態對象
Time of Update: 2017-02-27
1. C++雖然主要是以C的基礎發展起來的一門新語言,但她不是C的替代品,不是C的升級 ,C++和C是兄弟關係。沒有誰比誰先進的說法,更重要 的一點是C和C++各自的標準委員會是 獨立的,最新的C++標準是C++98,最新的C標準是C99.因此也沒有先學C再說C++的說法,也不 再(注意這 個"不再")有C++文法是C文法的超集的說法。2. C++/CLI和C# 是微軟的,它們與C和C++沒有任何關係,雖然部分文法相似。但哪兩種 語言不相似呢?都是abc這26個字母。3.
Time of Update: 2017-02-27
最近在學習c++程式效能最佳化,讀到記憶體池部分。自己動手寫了一個,小小測試了一下應 該沒有問題。記憶體塊MemoryBlock聲明檔案MemoryBlock.h#pragma once#define USHORT unsigned short#define ULONG unsigned long#include <iostream>using namespace std;//記憶體塊struct MemoryBlock{ USHORT m_nSize;//可分配記憶體總大小
Time of Update: 2017-02-27
學習 C++
Time of Update: 2017-02-27
C++/CLI中新推出的自動確定性資源回收(Automatic deterministic destruction)被視 為一個優秀的設計。是使用所謂C++/CLI這個“新瓶”來裝Bjarne Stroustrup提 出的RAII這個“舊酒”。這的確不錯,相對而言,這個比C#中的using 關鍵字(dispose模式),以及Java中的 hard-coded的dispose方法都要好許多。這個特性是由C++/CLI中棧對象(局部對象)來提供
Time of Update: 2017-02-27
在C++語言中,有如下代碼:char a;int b;int c;a='1';b=1;printf("a = %x \r\n",a);printf("b = %x\r\n",b);c=a;printf("c = %x\r\n",c);輸出的結果是a = 31b = 1c = 31請按任意鍵繼續. . .這裡 int型是4Byte char型是1Byet。a=‘1’
Time of Update: 2017-02-27
在使用仿函數的時候,主要用到以下兩種:一種是以基類std::unary_function派生出來的衍生類別;另一種是以基類std::binary_function派生出來的衍生類別。而這兩種有什麼區別呢?它們之間的區別只是第一種接收的參數個數為一個,而第二種接收的參數的個數為兩個。僅此而已。好了,我們還是來幾個例子看看:第一種的使用template<typename T>class MeetsThreshold: public
Time of Update: 2017-02-27
原型:extern void *malloc(unsigned int num_bytes);用法:#include <malloc.h>或#include <stdlib.h>功能:分配長度為num_bytes位元組的記憶體塊說明:如果分配成功則返回指向被分配記憶體的指標,否則返回null
Time of Update: 2017-02-27
如果返回的是一個struct對象,return 語句會如何做呢?下面是測試代碼#include <iostream>using namespace std;struct Big{char buf[100];int i;long d; }B,B2; Big bigfun(Big b){b.i=100;return b;}int main(){B2=bigfun(B); return 0; }在main開頭和結尾設斷點 8: int main()19: {004012A0
Time of Update: 2017-02-27
WIN2K/VC下面:[char] Size Total:1[int] Size Total:4[long int] Size Total:4[float] Size Total:4[double] Size Total:8[long double] Size Total:8[double point]Size Total:4[char point] Size Total:4WIN2K/dev-c++下面 &Ubuntu8.10 gcc 下面:[char] Size
Time of Update: 2017-02-27
4、函數參數傳遞C++語言中,函數的參數和傳回值的傳遞方式有三種:值傳遞、指標傳遞和引用傳遞."值傳遞"的樣本程式.由於Func1 函數體內的x 是外部變數n 的一份拷貝,改變x 的值不會影響n, 所以n 的值仍然是0.void Func1(int x){x = x + 10;}…int n = 0;Func1(n);cout < < "n = " < < n < < endl; // n =
Time of Update: 2017-02-27
知識結構:1、if,for,switch,goto2、#define,const3、檔案拷貝的代碼,動態產生記憶體,複合運算式,strcpy,memcpy,sizeof4、函數參數傳遞,記憶體配置方式,記憶體錯誤表現,malloc與new區別5、類重載、隱藏與覆蓋區別,extern問題,函數參數的預設值問題,宏代碼與內嵌函式區別6、構造和析構的次序,String函數定義具體實現:1、if,for,switch,gotoif:bool int float pointer char
Time of Update: 2017-02-27
處理 C++ 中的異常會在語言層級上遇到少許隱含限制,但在某些情況下,您可以繞過它們。學習各種利用異常的方法,您就可以生產更可靠的應用程式。保留異常來源資訊在 C++中,無論何時在處理常式內捕獲一個異常,關於該異常來源的資訊都是不為人知的。異常的具體來源可以提供許多更好地處理該異常的重要訊息,或者提供一些可以附加到錯誤記錄檔的資訊,以便以後進行分析。為瞭解決這一問題,可以在拋出異常語句期間,在異常對象的建構函式中產生一個堆疊追蹤。ExceptionTracer 是示範這種行為的一個類。清單 1.
Time of Update: 2017-02-27
c/c++關於定義和聲明的原則是一次定義,多次聲明。定義分配了變數以及函數的記憶體,而聲明則為這些變數和函數指定了一個引用標籤,用來使用這些記憶體,也就是名字。定義的使用是通過聲明(名字)來調用的。每個定義都有範圍(scope),潛在範圍(declaration
Time of Update: 2017-02-27
//不會敲,是偶看過別人的結題報告後敲的,學習下#include<iostream>#include<algorithm>using namespace std;typedef struct Node{ int label; int cnt; int leaf[200];};Node tree[200];int solve(int i){ int stone[200],result,temp; if(tree[i].cnt==0) return 1;
Time of Update: 2017-02-27
#include<iostream>using namespace std;int n,next[1000008];char s[1000008];void Get_next(){int j,k;j=1;k=0;next[1]=0;while(j<=n+1) { if(k==0 || s[j]==s[k]) { j++; k++; next[j]=k; } else k=next[k];
Time of Update: 2017-02-27
#include<iostream>#include<string>using namespace std;int n,next[400008],result[400008];;char s[400008],t[400008];void Get_next(){int j,k;j=1;k=0;next[1]=0;while(j<=n+1) { if(k==0 || s[j]==s[k]) { j++; k++; next[j]=
Time of Update: 2017-02-27
筆記:c++根本不存在所謂的“數組形參”,數組在傳入時,實質上只傳入指向其首元素的指標 。void average( int array[12] ); // 形參是一個int *void average( int array[] ); // 形參仍然是一個int *void average( int (&array)[12] ); // 現在函數只能接受大小為12的整型數組// 注意:不可以使用int *初始化 int(&)[n]template<