Time of Update: 2018-12-03
原文:http://www.altdevblogaday.com/2012/04/26/functional-programming-in-c/作者:John Carmack-潘宏
Time of Update: 2018-12-03
原文:http://www.altdevblogaday.com/2012/04/26/functional-programming-in-c/作者:John Carmack-潘宏 譯-2013年1月-email:
Time of Update: 2018-12-03
原文:http://www.altdevblogaday.com/2012/04/26/functional-programming-in-c/作者:John Carmack-潘宏 譯-2013年1月-email:
Time of Update: 2018-12-03
C++標準庫異常類繼承層次中的根類為exception,其定義在exception標頭檔中,它是C++標準庫所有函數拋出異常的基類,exception的介面定義如下:namespace std { class exception { public: exception() throw(); //不拋出任何異常 exception(const exception& e) throw(
Time of Update: 2018-12-03
原文:http://www.altdevblogaday.com/2012/04/26/functional-programming-in-c/作者:John Carmack-潘宏 譯-2013年1月-email: popyy@netease.com-weibo.com/panhong101純函數(Pure
Time of Update: 2018-12-03
原文:http://www.altdevblogaday.com/2012/04/26/functional-programming-in-c/作者:John Carmack-潘宏 譯-2013年1月-email: popyy@netease.com-weibo.com/panhong101並非所有程式都是純正的,除非該程式只和自身代碼打交道,而程式多數情況下也需要和外界互動。雖然探險般地將純正做到極致是一種樂趣,但實際情況也表明:有時候,副作用也是必要的,應該好好管理這些副作用。在有些函數中,
Time of Update: 2018-12-03
原文:http://www.altdevblogaday.com/2012/04/26/functional-programming-in-c/作者:John Carmack-潘宏 譯-2013年1月-email: popyy@netease.com-weibo.com/panhong101Michael
Time of Update: 2018-12-03
知識點是看 陳皓大哥的部落格,代碼也參考了他的,不過做了很小的改動。原文連結:http://blog.csdn.net/haoel/article/details/1948051#include "stdio.h"class Base{public:virtual void Fun1(){printf("Call Base Fun1\n");}virtual void Fun2(){printf("Call Base Fun2\n");}virtual void
Time of Update: 2018-12-03
自己寫的stack類,功能可能很少,也可能裡面很多錯誤,,但至少我測試的是正確的,;代碼奉上:#include <iostream>using namespace std;template <class T>class node{public:node<T>* next;T val;node():next(NULL),val(){};node(T v):next(NULL),val(v){};};template <class T>class
Time of Update: 2018-12-03
當把一個衍生類別對象賦給一個基類對象時,會發生對象切割。(另外用基類對象強制轉換衍生類別對象也會)對象切割會發生什麼呢?#include <iostream>using namespace std;class CShape{public:CShape (){m_color=0;}~CShape(){}virtual void draw(){cout<<"This is a
Time of Update: 2018-12-03
1.不用局部變數和全域變數實現strlen庫函數 一般用有變數的實現方法是:(1)、不管效率的簡單的實現 size_t strlen_a(const char * str) { size_t length = 0 ; while (*str++ ) ++ length; return length;}也可以稍加改進下是:size_t strlen_b(const char * str) { const char *cp = str;
Time of Update: 2018-12-03
類對象的構造順序是這樣的:1.分配記憶體,調用建構函式時,隱式/顯示的初始化各資料成員 初始化階段可以是顯式的或隱式的,取決於是否存在成員初始化表。隱式初始化階段按照聲明的順序依次調用所有基類的預設建構函式,然後是所有成員類對象的預設建構函式。2.進入建構函式後在建構函式中執行一般計算 計算階段由建構函式體內的所有語句構成。在計算階段中,資料成員的設定被認為是賦值,而不是初始化。使用初始化列表有兩個原因:1.必須這樣做:
Time of Update: 2018-12-03
C的記憶體管理有1)變數管理。除了全域變數和靜態變數(那些定義在任何函數以外的變數,一般C語言中不出現,靜態變數是有static關鍵字的變數)是在堆棧中管理的,進入函數建立這些變數,退出函數就銷毀了。2)函數調用,這個也是在堆棧中。3)用庫函數動態分配的記憶體。C庫裡的函數實際上是調用DOS 功能,調用介面是int 21H,功能號放在AX裡。功能號我記不清了。具體參見相關技術指南。對於1)和2),舉個例子:fu(int j){ int i;}如果調用fu(2),那麼彙編代碼大概是push
Time of Update: 2018-12-03
綜合/巨著《C++程式設計語言(特別版)》Bjarne Stroustrup中文版:裘宗燕 譯機械工業出版社影印版:高等教育出版社 程式設計語言的書,有一個很有趣的現象,就是語言發明者幾乎都要寫書,而語言開發年代越新的,書的品質似乎越差。C和C++以及Perl的夫子自道均成 為不可動搖的經典,相比之下C的口碑最好,20年後仍然首屈一指;Java(人民郵電出版社即將出版)處於中點,雖然也堪稱經典,但是因為競爭激烈,不如
Time of Update: 2018-12-03
Library 4. Operators Operators庫如何改進你程式?Operators用法Operators 總結 Operators庫如何改進你的程式?提供一組完整的比較操作符提供一組完整的算術操作符提供一組完整的迭代器操作符C++定義的操作符可以分成幾組。當你在一個類中碰到某組操作符中的一個,通常你還會碰到同組中的其它操作符。例如,如果一個類提供了 operator==, 你通常還會看到 operator!= ,或許還有 operator<, operator<=,
Time of Update: 2018-12-03
序--入行程式已7年了,主要涉足Web開發。學的是java,C#;講的是javascript,css。近期突然對C++感興趣。遙想當年學C的時候,還對著老譚的那本C語言狂啃,模模糊糊記得指標啥的,大約得有8,9年了吧。到考研時本來專業課是C來著,又突然因為赴日開發斷了上研究生這條路。所以對C一直算得上是有緣無份。而對於C++,則連緣都沒有。也許興趣是最好的老師,也算為自己留條後路,學到什麼程度呢,起碼能看得懂代碼吧。本次開發目的是製作一個開發個人防火牆。在以後的日子裡,將學習C++的感悟與體會記
Time of Update: 2018-12-03
一.如何將程式檔案切割應將原有程式合理切割為三部分1.標頭檔:包含結構生命和使用這些結構的函數的原型。標頭檔常包含的內容函數原型使用#define或const定義的符號常量結構聲明類聲明模板聲明內嵌函式#include name.h#include <name.h><>首先在儲存標準標頭檔的目錄尋找,不加的則在目前的目錄或原始碼目錄尋找運用#ifdef
Time of Update: 2018-12-03
Any 標頭檔: "boost/any.hpp"類 any 允許對任意類型進行型別安全的儲存和取回。不象無類類型,any 儲存了類型資訊,並且不會讓你在不知道正確類型的情況下獲得存入的值。當然,有辦法可以讓你詢問關於類型的資訊,也有測試儲存的值的方法,但最終,調用者必須知道在 any 對象中的值的真實類型,否則不能訪問any。可以把 any 看作為上鎖的安全性。沒有正確的鑰匙,你不能進入其中。any 對它所儲存的類型有以下要求:CopyConstructible
Time of Update: 2018-12-03
new和delete運算子用於動態分配和撤銷記憶體的運算子new用法: 1. 開闢單變數地址空間 1)new int; //開闢一個存放數組的儲存空間,返回一個指向該儲存空間的地址.int *a = new int 即為將一個int類型的地址賦值給整型指標a. 2)int *a = new int(5) 作用同上,但是同時將整數賦值為5 2. 開闢數組空間
Time of Update: 2018-12-03
眾所周知,C++函數重載時傳回值是不參與重載決議的, 也就是說:int lex_cast(const char*);double lex_cast(const char*);這樣兩個函數在同一個編譯單元同一個 namespace 中時, 會編譯報錯.怎麼辦呢?一個小技巧:#include <iostream>#include <string>#include <boost/lexical_cast.hpp>class my_cast { const