Time of Update: 2018-12-04
文章目錄 C++中常用預先處理指令1.include引用標頭檔2.條件編譯3.#define定義宏4.#progma 常用預先處理指令 C++中常用預先處理指令前面講了主要有四種1.include引用標頭檔 2.條件編譯#define #ifdef等 3.#define定義宏 4.progma 1.include引用標頭檔我們經常會看到#include "ABC.h" 和#include <iostream>這樣的寫法.
Time of Update: 2018-12-04
為啥用內嵌函式(inline functions) 在C++中函數調用需要建立棧環境,進行參數複製,保護調用現場,返回時進行傳回值複製,恢複調用現場.這些操作都需要額外開銷.那有啥好辦法避免頻繁的函數調用呢,
Time of Update: 2018-12-04
文章目錄 方法一方法二,調用API 快速鍵的作用大家都清楚,就是快捷嘛,操作起來方便.用電腦的人很少有沒用過Ctrl + C 和Ctrl + V的.
Time of Update: 2018-12-04
為啥需要動態分配記憶體 數組是我們常用的一種資料結構.但它有一個缺點,就是用的時候必須確定數組大小.如果我們要用數組來儲存的資料不確定可咋整啊?把數組定得太大浪費空間,太小的話又裝不下.這是一種情況.另外就是對象太大.我們使用的資料大部分時候都預設儲存在棧(stack)裡面,由系統去管理,會自動給分配記憶體,自動給刪除掉.但是stack很小,就那麼幾M,如果你讀取一個幾十M的常值內容然後儲存到一個字串裡,stack肯定會被撐爆了.
Time of Update: 2018-12-04
文章目錄 啥叫內串連 外串連cpp源檔案與h標頭檔關係extern外部聲明static 內部串連const關鍵字inline與static函數也是內部串連的 啥叫內串連
Time of Update: 2018-12-04
最常用的序列化是把某個類序列化成二進位檔案.但有時我們也會把類序列化成xml檔案.假如有如下一個類class Arwen{private Hashtable table = new Hashtable();private TimeSpan time = new TimeSpan(0, 0, 1);public Hashtable Table{get { return table; }set { table = value; }}public TimeSpan Time{get { return
Time of Update: 2018-12-04
反射定義 反射就是審查中繼資料並收集關於它的類型資訊的能力. 那中繼資料又是個啥東東呢?中繼資料是程式集裡的東西.
Time of Update: 2018-12-04
文章目錄 6.TODO 注釋 C++編碼規範(1):代碼注釋C++編碼規範(2):命名規範 當你閱讀別人的代碼時如果沒有注釋那會是件比較痛苦的事.一說到注釋我們馬上想到是通過//或/*
Time of Update: 2018-12-04
為啥要用模板 我們知道有很多不同的物件類型可能有相同的操作,基本類型如數實值型別的都有加減乘除,比大小啊.一個個從現實中抽象出來的類就更是具體很多共性了.如果是同一類事物可以弄個父類出來就OK,比如動物都具體的某些通用操作就搞個animal基類完事.但如果不是同一類事物,就不容易整個繼承關係出來啊.比如人有身高,可以計算體重,一塊石頭也有長寬高,可以計算體重.如果有一個計算體重的函數,大家都可以拿來用,只要傳不同的參數就行.函數重載可以實作類別似的功能,但太麻煩了點,要整蠻多個函數啊.
Time of Update: 2018-12-04
主要實現雙鏈表如下功能:void AddBack(T val); //鏈表尾部添加元素void AddFront(T val); //鏈表頭部添加元素bool InsertAt(int pos, T val); //在指定的索引處插入元素bool RemoveBack(); //尾部刪除元素bool RemoveFront(); //頭部刪除元素bool RemoveAt(int pos); //刪除指定索引處元素 bool Find(T val);
Time of Update: 2018-12-04
我們知道如果不希望改變某個變數的值就用const修飾它,讓它變為常量.基本類型和指標類型都能用const來修飾.數組也可以用const來修飾.那你自然要問我們把class執行個體化成一個對象後,如果不希望修改對象中的成員變數,讓對象變得像個常量一樣該咋整呢?你首先自然會想到把類中所有的成員變數都用const修飾不就得了.其實這確實是個辦法拉,但是如果我們只是想某個類的一個執行個體對象弄得像常量啊.你這樣用const整就真成了常量了,所有類的執行個體都只能當常量來處理了.這顯然不行拉.其實很簡單,
Time of Update: 2018-12-04
類和柏拉圖的理念世界
Time of Update: 2018-12-04
文章目錄 強型別與弱類型語言隱式轉換新式強制類型轉換方式C#強制類型轉換 強型別與弱類型語言像C++,C,Java,C#這些主流的程式設計語言都是強型別語言.而一些指令碼語言則是弱類型的,比如vbscript , javascript.1.強型別語言簡單的理解就是當定義了一個變數之後就會指定一個固定的類型,並對應一個固定的記憶體塊大小.比如有int , double
Time of Update: 2018-12-04
文章目錄 為啥需要枚舉類型1.不需要分配記憶體的情況2.需要分配記憶體的情況枚舉類型具體用法
Time of Update: 2018-12-04
文章目錄 上面是講的概念性的東西,現在來講下文法細節C++抽象類別 物件導向的小故事
Time of Update: 2018-12-04
如果要儲存運行程式過程的資料要麼儲存到資料庫中,要麼建立一個普通的檔案,然後把資料儲存進去.但是這兩者有個缺點就是,不能把原有資料的結構也儲存進去.比如一個類中的欄位值儲存進去後再讀取出來必須再解析下才行.序列化技術讓你省去瞭解析的過程.儲存後再讀取時直接得到一個class序列化的方式有三種:BinaryFormatter,SoapFormatter,XmlSerializer1.BinaryFormatter儲存成位元據流.用法樣本:using System.IO;using
Time of Update: 2018-12-04
地球人都知道物件導向的三個主要特徵是封裝,繼承,多態.前面兩個概念顧名思義,比較容易理解,封裝就是所有的東東都給封裝到一個個的class中,並通過public,private等存取修飾詞提供一些許可權控制.繼承嘛就是子類能擁有父類的非私人的成員變數和函數,就像你能繼承你老子的財產一樣啊.多態光看名字可不好理解,可沒變態那麼通俗易懂啊.其實前面說的三個特性還有另外的版本,比如:資料抽象,繼承,動態綁定.說法不一樣但表示的意思完全一樣.
Time of Update: 2018-12-04
Time of Update: 2018-12-04
文章目錄 2.參數預設值只能在聲明或定義中一處指定.不能同時指定.3.預設參數與函數重載的二義性問題. 預設參數在函數參數較多時是非常有用的.可以只傳必須的值,其它取預設值.使用方法如下: 1.預設參數是嚴格按照從左至右的順序使用所以只有如下使用才是合法的(1)參數全部為預設值. void Fun( int a = 1, int b = 2, int c = 3)(2)void Fun(int a , int b = 2, int c =
Time of Update: 2018-12-04
文章目錄 C++ 基礎資料型別 (Elementary Data Type)C#基礎資料型別 (Elementary Data Type) 1.類型系統簡介我們認識事務時總喜歡先分個類,然後研究每個各類的特性.在程式設計語言裡面把也會把所有基本內容分門別類.你首先想到的自然是int,long等基礎資料型別 (Elementary Data