都能動態申請記憶體和釋放記憶體
malloc&free是標準庫函式,new&delete是運算子,對於非內部資料型別的物件而言,只有new,delete能自動呼叫物件的建構函式和析構函式
指標指向變數的位址,引用是變數的別名,
引用不佔記憶體單元,指標本身佔4位元組
引用必須初始化,並在初始化後不能修改,而指標可以不初始化,還可以修改,不存在指向空值的引用,但存在指向空的指標
指標可以有多級int **a,引用只有一級
一般變數和指標作為形參都要單獨分配記憶體空間,引用是直接對實參進行操作
引用和指標都能改變實參
(靜態多型)編譯時多型:函式模板和函式過載
(動態多型)執行時多型:虛函式:允許在派生類中重新定義與基類同名的函式,並且可以通過基類指標或引用來訪問基類和派生類中的同名函式
純虛函式就是虛函式=0,含有純虛函式的類被稱為抽象類,必須要在子類中實現
兩者不能被static修飾,因為它們需要動態繫結
繼承:重用**,子類可以使用父類的功能
封裝:提供介面,隱藏實現細節
常變數:const int a = int const a
常引用:const int &a = int const &a
常物件:a const a = const a a
常成員函式:類名::fun(形參) const
常陣列:int const array[大小] = const int array
常指標:const int* a常量指標,不能修改它所指向的內容,int* const a指標常量,不能指向其他的記憶體模組 (看const和*位置)
全域性/靜態儲存區:全域性變數和靜態變數
常量儲存區:常量
**區:二進位制**
sizeof:只計算資料成員大小,不計算static成員
struct{
int a;
short b;
char c;
inr *d;
strlen:返回字串長度 不包括『\0』
內聯函式使用時=直接將整個函式體的**插人呼叫語句處,提高**可重用性,但增加了**體積
友元(frend)機制允許乙個類將對其非公有成員的訪問權授予指定的函式或者類
分友元函式和友元類
建構函式:父類->類成員->基類
析構函式:基類->類成員->父類
預編譯-》彙編-》編譯-》鏈結
<>從標準庫中開始查詢
「」從使用者指定路徑開始查詢
為了能夠正確實現c++**呼叫其他c語言**
auto_ptr:方便管理單個堆物件的記憶體(最好不要用)
unique_ptr:方便管理堆物件或者堆物件陣列的記憶體
shared_ptr:方便管理需要共享所有權的記憶體
weak_ptr:weak_ptr是shared_ptr的觀察者,負責從shared_ptr產生乙個weak_ptr但是不會增加引用計數,當shread_ptr失效以後,weak_ptr也會失效
1)關鍵字 auto nullptr
2)lambda表示式
stl array 單向列表slist 雜湊map,set
增加了多執行緒程式設計pthread
智慧型指標
function(函式包裝器,可以放下一切可呼叫之物) bind(函式介面卡,改變函式的介面)
②修飾類的成員函式和成員變數時:屬於整個類,不屬於物件,為各個物件所共享
類外儲存,只能在類外初始化
靜態成員函式只能訪問靜態成員變數,沒有this指標
auto :必須初始化,系統會根據初始化的變數型別自動確定該變數的資料型別
register
vilotile 易變的意思,主要用於多執行緒中,讀取該變數當前最新值,不需要編譯器做優化處理
Part1 資料系統基礎
前四章講述應用於所有資料系統的基本理念,不論是執行在單機還是分布式的機器集群上。第一章介紹我們將要使用的術語和方法。解釋 可靠性 可擴充套件性和可維護性 的具體含義,以及我們如何去達到這些目標。第二章對比若干種不同的資料模型和查詢語言,從開發者角度是不同資料庫間最明顯的區分因素。我們可以看到不同的資...
makefile教程(基礎) part1
target.prerequisites command 解釋 target 是乙個目標檔案,也可以是執行檔案,還可以是乙個標籤 label prerequisites 要生成那個target所需要的檔案或是目標。command make需要執行的命令。任意的shell命令 main main.o ...
前端常見面試題總結part1
使用let宣告的變數不與window產生對映 let n 10,obj let fn obj.fn function obj.n fn 10 obj.fn 10 console.log n,obj.n undefined或者nan與數值相加 結果都為nan undefined與字串相加,先轉換成字串...