C 程式設計小結

2021-09-30 01:50:24 字數 3162 閱讀 2862

1. c++把資料型別分為基本資料型別、構造資料型別和抽象資料型別。

2. c++的基本資料型別包括整數型別、實數型別、字元型別、邏輯型別和空值型別。整數型別包括int,unsigned int,short int, unsigned short int,long int和unsigned long int;實數型別包括foalt,double和long duble;字元型別包括char,unsigned char,signed char;邏輯型別是bool;空值型別為void。

在c++中,把整型型別、字元型別以及邏輯型別統稱為整型(integral type);把整型和實數型別統稱為算術型別(arithmetic type)。

3. 在程式中,資料的表現形式有兩種:常量和變數。常量是指在程式執行過程中值不變的量,常量可分為字面常量和符號常量。變數是指在程式執行過程中值可以發生改變的量。

4.函式模板:實際上是建立乙個通用函式,其函式型別和引數型別不具體指定,用乙個虛擬的型別來代表,這個通用函式就是函式模板。

#include

template

t const& max(t const& a,t const& b)

int main()

5.只有類外定義的成員函式規模很小而呼叫頻率較高時,才能將此成員函式指定為內建函式。使用inline關鍵字。

舉例:inline void display();

6.類的資料成員是不能再宣告類時初始化的。

7.建構函式:是一種特殊的成員函式,與其他成員函式不同,不需要使用者來呼叫它,而是在建立物件時自動執行。\

建構函式的名字必須與類名同名,而不能由使用者任意命名,以便編譯系統能識別它並把它作為建構函式處理。

8.引數初始化表實現對資料成員的初始化,這種方法不在函式體內對資料成員初始化,而是在函式首部實現。

舉例:box:box(int h,int w,int len):height(h),width(w),length(len){}

9.析構函式:也是乙個特殊的成員函式,它的作用於建構函式相反,它的名字是類名前面加乙個「~」符號,在c++中「~」是取反運算子,從這點也可以想到:

析構函式是與建構函式作用相反的函式。

析構函式的作用並不是刪除物件,而是在撤銷物件占用記憶體之前完成一些清理工作。析構函式不能過載。(肯定的,無參怎麼過載)

10.this指標:在每乙個成員函式中都包括乙個特殊的指標,這個指標的名字是固定的,稱為this。它是指向本類物件的指標,它的值是當前被呼叫的成員函式所在物件的起始位址。

11.物件的常引用:把實參變數的位址傳給形參,這樣引用名也指向實參變數。

#include

using namespace std;

class time;

time::time(int h,int m,int s)

int main()

的用法,概括來說就是被他修飾的物件,函式,變數或指標程式執行過程中不能別改變。(自己總結的)

13.物件的複製:用乙個已有的物件快速的複製出多個完全相同的物件。

舉例:box:box2(box1);

14.靜態資料成員:以關鍵字static開頭,如果想在同類的多個物件之間實現資料共享,也不要用全域性物件,可以用靜態的資料成員。

靜態資料成員可以初始化,但只能在類體外進行初始化。成員函式也可以定義為靜態的,在類中宣告函式的前面加static就成了靜態成員函式。和靜態資料成員一樣,靜態成員函式是類的一部分,而不是物件的一部分。

如果要在類外呼叫共用的靜態成員函式,要用

類名和域運算子「::」。靜態員函式的作用不是為了物件之間的溝通,而是為了能處理靜態資料成員。

靜態函式沒有this指標。既然它沒有指向某一物件,它就無法對乙個物件中的非靜態成員進預設訪問(記在引用資料成員時不指定物件名)。

靜態成員函式與非靜態成員函式的根本區別是:非靜態成員函式有this指標,而靜態成員函式沒有this指標。由此決定了靜態成員函式不能訪問本類中的非靜態成員。

靜態成員函式可以直接引用本類中的靜態資料成員,因為靜態成員函式同樣是屬於本類的,可以直接引用。在c++中,靜態成員函式主要用來訪問靜態資料成員,而不訪問非靜態成員。

15.友元:在本類中用friend對該函式進行宣告此函式就稱為本類的友元函式。

乙個類的有元函式可以訪問這個類中的私有成員(破壞了封裝性,但是要考,還是要記住)。friend函式不僅可以是一般的函式(非成員函式),而且可以是另一類中的成員函式。

乙個函式(包括普通函式和成員函式)可以被多個類宣告為「朋友」,這樣就可以應用多個類中的私有資料。

16.c++允許對類作「提前引用」的宣告,即在正式宣告乙個類之前,先宣告乙個類名,表示此類將在稍後宣告。

17.類模板:模板是類的抽象,類是模板的例項。

#include

using namespace std;

template

class point;

int main()

18.運算子過載:

運算子過載的方法是定義乙個過載運算子的函式,在需要執行被過載的運算時,系統就自動呼叫該函式,實現相應的運算。也就是說,運算過載是通過定義函式實現的。運算子過載實質上是函式的過載。

#include

using namespace std;

//字串操作類

class string

string (char *str)

friend bool operator>(string &string1,string &string2);

friend bool operator<(string &string1,string &string2);

friend bool operator==(string &string1,string &string2);

void display();

private:

char *p;

};//輸出

void string::display()

//運算子過載

bool operator>(string &string1,string &string2)

//運算子過載

bool operator<(string &string1,string &string2)

//運算子過載

bool operator ==(string &string1,string &string2)

{if(strcmp(string1.p,string2.p)==0)

C語言程式設計小結精華

二級c語言程式設計模擬試題 1 8 下面程式的功能是統計從命令列上傳遞進來的第乙個引數 現字母個數。請填空完善程式。注 引數個數從0開始記數 include include void main int argcar 填空題答案 1 main函式 2 cos fabs x y sin fabs x f...

C 程式設計

c 程式設計 課程教學大綱 一 課程說明 1 課程 040170 2 總學時數 68 其中理論環節學時數 38 實驗實踐環節學時數 30 3 學分 4 4 適用專業 計算機應用技術 計算機網路技術 5 本課程的性質 地位和作用 本課程為專業基礎課。c 程式設計 是計算機技術專業的一門必修課程。物件導...

C 程式設計報告

中國地質大學 北京 計結課報 告課程班別名 0401042任課教師 陳春麗 主講教師 學院 資訊工程學院專業 電氣工程及其自動化 學生姓名 xx學號 2009.12.13 c 程式設計結課報告 內容摘要 c 語言是從c語言的基礎上發展而來的功能齊全 移植性較好 物件導向的中級程式語言。運用以掌握的c...