C 程式設計學習筆記 複習 拾遺 5

2021-09-01 13:02:36 字數 2083 閱讀 4423

封裝性:物件的狀態資訊隱藏在物件內部,不允許外部程式直接訪問物件內部資訊,而是通過該類所提供的方法來實現對內部資訊的操作與訪問。

類外如何訪問被封裝的成員(private 和 protected成員)?

–通過物件名.公有成員函式

良好的封裝性,考慮角度: 將物件的成員變數與實現細節隱藏起來,不允許外部訪問。

把方法暴露出來,讓方法來控制對這些成員變數進行安全的訪問與操作。

#include using namespace std;

class circle

double area()

private:

double r;

};double arearing(circle &c1,circle &c2)//普通函式

//由於封裝,類外無法訪問私有資料成員,只能通過公有函式呼叫

int main()

circle(circle &x)//拷貝建構函式

double area()

private:

double r;

};int main()

circle(circle &x)//拷貝建構函式

double area()

static int total;//定義靜態資料成員

private:

double r;

};int circle::total=0;

int main()

circle(circle &x)

double area()

int gettotal()//靜態成員可以被該類的普通成員函式使用。

private:

double r;

static int total;//定義靜態資料成員

};int circle::total=0;

int main()

circle(circle &x)//拷貝建構函式定義

double area()

static int gettotal()

private:

double r;

static int total;//定義靜態資料成員

};int circle::total=0;

int main()

double area()

friend double arearing(circle &c1,circle &c2);//友元函式宣告

//注意:友元關係是單向的

private:

double r;

};double arearing(circle &c1,circle &c2)//普通友元函式

//由於友元函式打破了封裝,類外可以訪問私有資料成員

int main()

double area()

void show(point &p);//該函式是circle的成員函式,point類的友元函式

private:

double r;

};class point

void show()

double area()

void show(point &p);

private:

double r;

};class point

void show()

void display(const double& r)

//常引用做形參,在函式中不能更新 r所引用的變數。

void print( );

void print( ) const;

private:

int x,y;

};void a::print ( )

;a::a(int i,int j):a(i) //建構函式

//常成員只能通過初始化列表給物件的常資料成員a賦初值

void a::print()

//普通成員函式可以呼叫常資料成員

int main( )

C 程式設計學習筆記 複習 拾遺 2

建構函式用於建立類物件,初始化其成員。析構函式用於撤銷類物件。若物件定義時若未顯式初始化,與變數類似,全域性物件和靜態物件在定義時初值為0,區域性物件在定義時初值為不確定的值。一旦建立乙個物件,物件通常都需要有乙個有意義的初值。1.在類中定義乙個具有初始化功能的成員函式。每當建立乙個物件時,就呼叫這...

C 程式設計學習筆記 複習 拾遺 3

例4.1 類中資料成員是字串 include include 字串函式宣告所在的標頭檔案 string類是c 提供的字串類,其主要功能是對字串進行操作。string類定義的變數稱為字串物件,該物件可以直接用字串常量賦值,也可呼叫string類中定義的成員函式。例4.2 連線字串例項 include ...

C 程式設計學習筆記 複習 拾遺 9

c 中有兩種繼承 單一繼承和多重繼承。對於單繼承,派生類只能有乙個基類 對於多繼承,派生類可以有多個基類。乙個類從多個基類派生的一般形式是 class 類名1 訪問控制 類名2,訪問控制 類名3 訪問控制 類名n 類名1繼承了類名2到類名n的所有資料成員和成員函式,訪問控制用於限制其後的類中的成員在...