原创 【入門篇】虛函數、純虛函數、抽象類

一、基本概念 1、虛函數 在類的成員函數前冠以 virtual 關鍵字的函數叫做虛函數。虛函數是實現運行時多態的基礎,可以像普通函數一樣被重載,也可以在派生類中被重寫。 2、純虛函數 純虛函數是指只有函數體,沒有定義函數體的成員函數。純虛

原创 static成員變量 & static成員函數

一、static成員變量 1.靜態成員變量的定義,與靜態類型變量的定義方式一樣,要在成員變量之前加關鍵字static。 2.不同於未初始化的靜態全局變量會被賦予默認值,靜態成員變量必須手動初始化,並且,由於它存儲在內存的靜態存儲區,故而在

原创 編碼格式 & 字符集 & 中文亂碼問題

一、編碼格式和字符集 編碼,意思是指將數據通過一定方式表達或儲存,這個方式就叫編碼。在計算機中,使用相應的標準存儲自然語言的方式就叫做編碼格式。 字符集,在計算機內部,規定一組字符的集合對應自然語言,這個統一的標準叫編碼,而與自然語言對應

原创 以太坊源碼分析(2)——以太坊APP對象

前言 從這一節開始,我將開始以太坊代碼全覆蓋講解,講解的流程是: 以太坊程序入口 基本框架 以太坊協議 發送一筆交易後發生了什麼 啓動挖礦 以太坊共識 p2p 網絡 閱讀本系列文章,將默認讀者具備一定的程序基礎,並對 Go 語

原创 const & static 關鍵字

一、const 修飾符 1. const 修飾符在C++中除了表現出和C語言相同的特性外,還表現出一些與類相關的特性。 2. 在C語言中 用 const 修飾符修飾的變量通常也被稱爲常量類型,但其實稱爲只讀類型更準確,表明該變量不應該被修

原创 【數據結構】總論

一、常用數據結構   數組  —— 連續存儲單元存儲 鏈表  —— 連續指針節點 隊列  —— 先進先出 棧     —— 先進後出 堆     —— 通常是一個可以被看做一棵樹的數組對象 樹     —— 非線性層級數據結構 圖   

原创 以太坊源碼分析(4)——初始化創世區塊

一、前言 通過前面章節學習了以太坊的基本架構之後,我們通過自己搭建一個單節點,並覆蓋以太坊主要流程來講解代碼。在這一節,你將學會:如何初始化創世區塊 二、代碼研究 2.1 準備工作 以太坊源碼 V 1.8.0 golang

原创 以太坊源碼分析(3)——基本框架

一、 創建節點 在 App 一章我們說到,以太坊的程序從 main 函數進入,並執行全局 app 對象的 Run 方法,最終調用 app.Action 也就是 geth 主函數。這一章我們就進入正題,一起來看看以太坊的基本框架是怎

原创 【設計模式二】Singleton單例模式

前言 單例模式的實現方法很多,但是其中的門門道道很值得研究。 單例模式的意圖是保證一個類僅有一個實例,並提供一個訪問它的全局訪問點,該實例被所有程序模塊共享。這讓我們想到類的靜態函數只能由類來調用,這個方法就跟類的實例沒有關係了。這個方法

原创 以太坊源碼分析(2)——以太坊框架

前言 從這一節開始,我將開始以太坊代碼全覆蓋講解,講解的流程是: 以太坊程序入口 基本框架 以太坊協議 挖礦 發送一筆交易後發生了什麼 以太坊共識 p2p 網絡 閱讀本系列文章,將默認讀者具備一定的程序基礎,並對 Go 語言特性有

原创 【設計模式一】工廠模式

工廠模式分爲:簡單工廠模式、工廠方法模式、抽象工廠模式 簡單工廠模式 核心思想:用一個工廠類根據不同的輸入條件new出不同的派生類指針,然後利用多態的特性調用不同派生類中virtual函數,得到不同的結果     結語:他真的很簡單,以

原创 【設計模式】總覽

一、設計模式分類 總體來說設計模式分爲三大類: 1)創建型模式 工廠方法模式、抽象工廠模式、單例模式、建造者模式、原型模式。 2)結構型模式 適配器模式、裝飾器模式、代理模式、外觀模式、橋接模式、組合模式、享元模式。 3)行爲型模式 策略

原创 以太坊源碼分析(1)——代碼結構

一、說在最前 本系列文章【以太坊源碼分析】將邊學習邊更新,如未特殊說明,將默認爲【go-ethereum-1.8.0】。 本系列文章的目的爲深入學習以太坊,文章中會加入博主對區塊鏈的理解,任何組織或個人不得在不經作者同意的情況下,用於

原创 c++ static成員變量 & static成員函數

一、static成員變量 1.靜態成員變量的定義,與靜態類型變量的定義方式一樣,要在成員變量之前加關鍵字static。 2.不同於未初始化的靜態全局變量會被賦予默認值,靜態成員變量必須手動初始化,並且,由於它存儲在內存的靜態存儲區,故而在

原创 __stdcall、__cdecl和__fastcall

前言 __stdcall、__cdecl和__fastcall是三種函數調用協議,函數調用協議會影響函數參數的入棧方式、棧內數據的清除方式、編譯器函數名的修飾規則等。 1、調用場合 __stdcall:Windows API默認的函數