原创 C++--類的靜態成員變量

一.成員變量的回顧 1.通過對象名能夠訪問public成員變量2.每個對象的成員變量都是專屬的 3.成員變量不能在對象之間共享Q:新的需求1.統計在程序運行期間某個類的對象數目2.保證程序的安全性(不能使用全局變量)3.隨時可以獲取當前對象

原创 C++--對象的構造順序與對象的銷燬

一.對象的構造順序 A.對於局部對象 --當程序執行流到達對象的定義語句時進行構造程序示例 #include<iostream> using namespace std; class Test { private:

原创 C++--初始化列表

Q:下面程序類的定義是否合法? #include <iostream> using namespace std; class Test { private: const int ci; public:

原创 C++---對象的構造

一.對象的構造(上) Q:對象中成員變量的初始值是多少? #include <iostream> using namespace std; class Test { private: int i;

原创 C++--類與封裝

一.類的組合電腦一般而言是由CPU、內存、主板、鍵盤和硬盤等部件組合而成。下圖可以表示該關係A.類通常分爲以下兩個部分1.類的實現細節2.類的使用方式1.當使用類時,不需要關心其實現細節2.當創建類時,才需要考慮其內部實現細節 二.封裝的基

原创 C++--面向對象的基本概念

面對對象的基本概念 面對對象的意義在於1.將日常生活中習慣的思維方式引入程序設計中2.將需求中的概念直觀的映射到解決方案中3.以模塊爲中心構建可複用的軟件系統4.提高軟件產品的可維護性和可擴展性 類和對象使面對對象中的兩個基本概念類:指的是

原创 軟件開發--深入理解程序的結構

程序由不同的段構成(代碼段,數據段)1.程序的靜態特徵就是指令和數據2.程序的動態特徵就是執行指令處理數據 A.段傳統上,一個程序一般會有這幾個段:.text 、.data、.bss段a.如果處理器由內存管理單元,那麼可執行程序被加載到內存

原创 軟件開發--調試器GDB

一.GDB介紹 A.GDB1.GNU項目中的調試器2.能夠追蹤程序的執行,也能夠恢復程序崩潰前的狀態B.GDB的重要性1.軟件不是一次性開發完成的(是軟件就有bug,是程序就有問題)2.調試時軟件開發過程中不可或缺的技術C.GDB的常規應用

原创 軟件開發--鏈接器

一.鏈接器上 鏈接器的意義--鏈接器的主要作用是把各個模塊之間相互引用的部分處理好,使得各個模塊之間能夠正確的銜接A.目標文件的祕密1.各個段沒有具體的起始地址,只有段大小信息2.各個標識符沒有實際地址,只有段中的相對地址3.段和標識符的實

原创 軟件開發--深入淺出處理器

一. 深入淺出處理器上 A.處理器:微控制器VS微處理器微控制器--CPU+片內內存+片內外設微處理器--CPUB.寄存器分類CPU寄存器--專用指令執行,數據運算,變量處理,參數傳遞外設寄存器--用於控制外設的行爲和工作方式,寄存器值的配

原创 軟件開發--開發中的輔助工具

開發環境的概念1.構建環境--代碼編寫,程序編譯,版本控制2.調試環境--用於定位問題的輔助工具集3.測試環境--用於驗證目標程序是否滿足用戶的顯性需求和隱性需求一般的嵌入式開發中的時間分配--代碼編寫及目標構建(20%) 測試 調試 修

原创 數據結構--圖

一 圖的定義與操作 A 定義圖是有頂點集合(Vertex)及頂點間的關係集合(Edge)組成的一種數據結構Graph=(V,E)無向邊1.頂點x和y之間的邊沒有方向,則稱該邊爲 無向邊2.(x,y)與(y,x)意義相同,表示x和y之間有連接

原创 make--打造專業的編譯環境

一.項目的目錄結構 分析A.項目被劃分爲多個不同模塊1.每個模塊的代碼用一個文件夾進行管理--文件夾由inc,src,makefille構成2.每個模塊的對外函數聲明統一放置於common/inc中--如:commom.h xxxfunc.

原创 數據結構--樹

一 樹 A .樹的屬性及介紹樹是一種非線性的數據結構樹是由n(n>=0)個結點組成的有限集合1.如果n=0,稱爲空樹2.如果n>0,則有一個特定的稱之爲根的結點,跟結點只有直接後繼,但沒有直接前驅,除根以外的其他結點劃分爲m(m>=0)個互

原创 make--隱式規則 路徑搜索及實例

一.隱式規則 問題一 .PHONY : all all: @echo "command-1" VAR:=test all: @echo "all:$(VAR)" make之後的結果如圖所示可以得出的結論是A.makefil