c 要點複習

2021-10-07 20:25:45 字數 2724 閱讀 1707

這裡就不管你c語言的了,預設有c語言基礎,僅整理一些c++特有的嘿嘿嘿。

1.

//從函式返回陣列(這裡我容易出錯)

int * getrandom( )

2.string 和string 類

string和c裡面的一樣,引入cstring標頭檔案。有strcat()連線,strcpy()複製,strlen()長度,strcmp()比較大小等函式。

string類要引入string 標頭檔案,是乙個類,可以直接定義乙個字串 :string str="hello"。(這個在cstring裡面還需要東易成乙個字串陣列char str1[10] = "hello";)。string類還可以直接str1+str2連線,相當於strcat(str1,str2)。

3.引用

作函式引數:void func(int& x, int& y);可以對實參的儲存單元進行修改,即函式返回後實參可以被修改了。

作函式返回值:

float &func(float r)

obj是乙個物件引用,該物件是用於初始化另乙個物件的。

2.友元函式

friend istream &operator>> (istream &is,class &c); //過載輸入輸出運算子

friend ostream &operator<< (ostream &os,const class &c);

這裡注意,因為cout類的opetator《函式的原始碼無法改變,所以無法過載為類的成員函式;

操作符過載過程中,需要用的類的成員變數,與iostream標準庫相容的輸入輸出運算子必須是普通的非成員函式,而不能是成員函式,否則它們的左側運算物件將是我們類的乙個物件。可以過載為友元或全域性。

3.運算子過載

令運算子過載函式作為類的成員函式在呼叫時只需輸入乙個被運算元引數即可,另乙個運算元引數則不需要輸入;令運算子過載函式作為類的友元函式在呼叫時不僅要求輸入被運算元引數,還要求輸入被運算元引數。直接寫成全域性函式也行。

1. point operator+(const point &a)

2.point operator+(const point &a,const point &b)

std::ostream& operator<<(std::ostream& os, const person& person)

std::istream& operator>>(std::istream& is, person& person)

return is;

}

注意,c++規定,下標運算子必須以成員函式的形式進行過載,該過載函式在類中的宣告格式如下:

返回值型別 & operator (引數列表);

int &classa::operator(int i)

return arr[i];//arr是類的乙個陣列成員

}

4.this指標

在 c++ 中,每乙個物件都能通過this指標來訪問自己的位址。this指標是所有成員函式的隱含引數。因此,在成員函式內部,它可以用來指向呼叫物件。 

return this與return* this:this是指向自身物件的指標,*this是自身物件。

return *this返回的是當前物件的轉殖或者本身(若返回型別為a, 則是轉殖,若返回型別為a&, 則是本身)。

return this返回當前物件的位址(指向當前物件的指標)

5.靜態成員變數

類內宣告:static int objectcount;

類外初始化:int class::objectcount = 0;

靜態成員函式:static int getcount()

6.繼承

class 《派生類名》:《繼承方式1>《基類名1>,《繼承方式2>《基類名2>,…

;class rectangle: public shape;

虛繼承:

class b:virtual public a;

c++編譯系統在例項化乙個子類時,

只會將虛基類的構造函式呼叫一次,

忽略虛基類的其他派生類對虛繼承的建構函式的呼叫,

從而保證了虛基類的資料成員不會被多次初始化。

7.多型:

這裡很綜合,看看大佬們寫的吧還是,然後看看相關題目做一做。

8.stl

這裡主要掌握乙個vetor就行了。

9.類模板

template 《型別參數列》

class 類模板名;

類模板名《真實型別參數列》 物件名(建構函式實際參數列);

template class pair;};

int main()

10.algorithm庫常用函式

max()

min()

swap()數值交換

sort()預設是從小到大排序的。引數分別是陣列的(首位址,末位址)。

int arr[10]=;

sort(arr,arr+10)

int a=1, b=2;

swap(a,b);

MapReduce要點複習

兩個核心點 mapreduce程式設計模型 把資料運算流程分成2個階段 階段1 讀取原始資料,形成key va1ue資料 map方法 階段2 將階段1的key va1ue資料按照相同key分組聚合 reduce方法 mapreduce程式設計模型的具體實現 軟體 hadoop 中的mapreduce...

LVS NAT DR複習要點

lvs做slb 第四層負載 nat模式director需路由 功能。director需有個公網位址的vip nat模式下,網路資料報的進出都要經過lvs的處理。入包做dnat 出包snat lvs需作為rs 真實伺服器 的閘道器。nat原理 當請求包到達lvs時 即director lvs做目標位址...

C 複習要點總結之 友元

在c 中,類的成員訪問許可權有三種,private,protected,public。private 類中的private成員只能夠在本類中或者友元訪問,子類或外界無法訪問私有成員。protected 類中的protected成員只允許本類或者子類中訪問,外界無法訪問,定義類時如果希望成員被子類繼承...