c 程式結構

2021-06-23 04:26:40 字數 2791 閱讀 5192

東南大學第5章c++程式結構

本章重點注意const 

static兩個關鍵字,也是企業面試中常見的面試題

(一)作用域

作用域:識別符號的可見範圍;

可見性:識別符號是否可以引用的問題。

1,函式原型作用域 

函式原型裡的形參

2,塊作用域 

塊中的識別符號作用域在花括號之間

3,類作用域

類x的乙個成員m,在x的任何乙個沒有重新宣告變數m的函式成員中都可以

訪問到m。

4,檔案作用域

開始於宣告點,結束於檔案尾

記憶體中的程式

------------|

**區 

|------------|

全域性資料區  |全域性變數

------------|

堆區  |先諮詢後分配

------------|

棧區  |函式區域性變數

------------|

可見性:從內向外看,如果看見則引用。

外有內無某一識別符號,則在內可見

外有內也有,則內只見內。

(二)物件的生存期

1,靜態生存期 與程式的執行期相同

檔案作用域

函式內部 冠以static  靜態區域性變數

2,動態生存區  開始於宣告點,結束與作用域結束處

典型例題

void main()

void fun()

int fun2()

???(2)全域性變數: 在所有函式的外部,在程式的每個函式都可見

存放的在全域性資料區,不初始化則為0

實現變數的共享,每個函式都可以訪問(不提倡)。

(3)資料成員:

在類中的資料成員,類內共享,類外有許可權

(四)靜態成員

1,靜態資料成員

不用全域性物件,使用類中的靜態資料成員

static宣告

所有物件維護該成員的同一拷貝,自由乙個空間

統計物件個數

class point;

point(point &p);

};point::point(point &p)

int point::countp=0;  //在檔案作用域某地使用類名限定進行定義性說明。

//***分配空間

原始碼見文末

2,靜態成員函式  解決操作合法性控制問題

作用域操作符 ::

注意:*靜態成員屬於類,非靜態成員屬於物件

*只能引用屬於該類的靜態資料成員或靜態成員函式

*不能直接引用類中的非靜態成員,通過物件a.x來訪問

class point;}

int main()

在基類的派生類中,可以直接訪問繼承而來的protected成員,但是不能訪問private限制的成員.

(五)友元

friend

提供破壞資料封裝和資料隱藏機制。

將乙個模板宣告為另乙個模板的友元。

1,普通函式

class point;

double fdist(point &a,point &b)

2,友元成員函式 

乙個類的成員函式可以說明為另乙個類的友元函式

class student; //預宣告

class teacher;

class student;

3,友元類

class a; 

class b;

友元是單向的。

不能傳遞。

(六)共享資料的保護

常型別:必須初始化,而且不能被更新。

1,常引用做形參

int main()

void display(const double &r)

2.常物件

class a;

a const a(3,4);

3,常成員函式

不更新物件的資料成員

常物件只能呼叫他的常成員函式,實現過載。

class r;

int main()

4,常資料成員

class a;

const int a::b=10; 

//不可變

a::a(int i):a(i),r(a){};  //*****編譯的時候就賦值了

void main()

{}常陣列,常指標。

(七)編譯預處理命令

1,include 尖括號 

按標準方式 

先在當前目錄搜尋,後標準方式

#define

#if  #endif

#ifdef  #endif

例:#ifndef head_h

#define head_h

class point

{}#endif

...大型的程式有助於多人開發

(八)多檔案結構和工程

多檔案結構

類宣告 file.h

類實現 file.xpp

類使用 main所在的file.cpp

使用vc++建立乙個多檔案工程

#include iostream.h

class point;

point(point &p);

int getc()

};point::point(point &p)

int point::countp=0;  //在檔案作用域某地使用類名限定進行定義性說明。

//***分配空間

void main()

{ point p(3);

point q(p);

cout<

C 程式結構

c 中的組織結構的關鍵概念是程式 program 命名空間 namespace 型別 type 成員 member 和程式集 assembly 命名空間 型別 成員 類 class 資料成員 字段 函式成員 方法,屬性,索引器,事件,運算子,構造 析構函式 介面 inte ce 函式成員 附經典理解...

c程式結構

在我們學習 c 語言的基本構建塊之前,讓我們先來看看乙個最小的 c 程式結構,在接下來的章節中可以以此作為參考。c 程式主要包括以下部分 讓我們看一段簡單的 可以輸出單詞 hello world include int main 接下來我們講解一下上面這段程式 程式的第一行 include 是預處理...

C 程式結構

在我們學習 c 語言的基本構建塊之前,讓我們先來看看乙個最小的 c 程式結構,在接下來的章節中可以以此作為參考。c 程式主要包括以下部分 讓我們看一段簡單的 可以輸出單詞 hello world include int main 接下來我們講解一下上面這段程式 程式的第一行 include 是預處理...