C 學習筆記與回顧(建構函式 鍊錶等)

2021-10-04 19:45:18 字數 3652 閱讀 2310

#include //for sqrt

#include //for strlen

#include//用到setw()和setprecision()

break; 退出迴圈,不再執行該迴圈

continue;退出此次迴圈,執行下次迴圈

//建構函式是成員函式,符合類中成員函式設計規則

#include

using

namespace std;

class

desk

;//----------------------------------

class

stool

private

:int high, width, length;};

//----------------------------------

desk::

desk()

//------------------------------------

intmain()

//析構函式名為波浪號加類名,無引數,無返回型別,作用一般是釋放物件建立之初所占用的資源,改寫上述**如下

#include

#include

using

namespace std;

class

a//建構函式~a

()//析構函式無引數,在物件結束生命期之際由系統自動呼叫

void

input()

void

proc()

void

print()

};voidf(

)//物件a在此處消滅,自動呼叫析構函式~a(),達到資源釋放的目的

intmain()

//輸入 8 5 3 7 2

//輸出 2 3 5 7 8

//c++成員函式可過載,建構函式同樣也可過載

#include

using

namespace std;

class

tdate

;tdate::

tdate()

tdate::

tdate

(int d)

tdate::

tdate

(int m,

int d)

tdate::

tdate

(int m,

int d,

int y)

intmain()

//程式中,類內是乙個世界,類外是乙個世界

//類內資料由成員函式來設定和修改,不允許類外直接修改資料成員(private),保護類內世界的清靜,資料錯誤由成員函式擔責

//類外是呼叫該類成員函式的應用程式,無須也不允許關心類的細節

class

student

float

grade()

//獲取平均成績

inthours()

//獲取學時};

intmain()

//批量訪問結構變數用到結構陣列

//若結構體大,則結構陣列排序,最好用結構指標陣列

#include

using

namespace std;

struct persona[6]

=,,,

,,};

intmain()

;//指標陣列

for(

int i=

1; i<

6; i++

)for

(int j=

0; j<=

5-i; j++)if

(pa[j]

->salary > pa[j+1]

->salary)

for(

int k=

0; k<

6; k++

)//通過結構指標,輸出結構陣列

cout<

->name<<

" "<

->id<<

" "<

->salary<

}

//結構體屬於自定義資料型別

//凡型別實體都可以作為函式引數傳遞

//為提高效率,最好用結構的引用傳遞函式引數

#include

using

namespace std;

struct person

;void

print

(person& pr)

person allone[4]

=,,,

};intmain()

//可將函式計算結果存於結構實體中,實現多值返回

#include

using

namespace std;

struct person

;person getperson()

void

print

(person& p)

intmain()

//傳遞結構引用引數同樣可以實現計算結果的多值返回

//建立鍊錶與遍歷鍊錶

//建立鍊錶方式多樣(此舉一例),遍歷鍊錶總是從鏈首開始

#include

using

namespace std;

struct student

*head =

null

;//全域性鏈首指標指向空

void

create()

pend-

>next =

null

;//鏈尾結點指向空,表示鏈尾

}void

showlist()

intmain()

//刪除鍊錶結點

//給出要刪除的結點值,先要定位結點,故刪除伴隨查詢

//假定全域性鏈首指標student* head;

void

remove

(int num)

student* h = head;

if(head-

>number==num)

for(student* ph=h-

>next;

!ph; h=ph, ph=ph-

>next)

if(ph-

>number==num)

}

//插入鍊錶結點

//若給出插入位置(用結點指標表示)則插入表示為

void

insert

(int num, student* pos)

建立鍊錶的過程可看作不斷在鏈首插入結點的過程,也可看作不斷在鏈尾插入結點的過程

C 學習筆記 建構函式

在建立某個類的物件時,由於對該物件的狀態 資料 不很明確,因此需要對其進行初始化。例如,我們要在長方形中建立乙個物件,或者說新建乙個長方形,那麼我們首先要確定它的長和寬,假如我們無法確定它的長和寬,那麼我們是無法構造出乙個長方形來的。例如,我們要構造乙個長方形,由於建構函式要在建立新物件時使用,因此...

C 學習筆記 建構函式與析構函式

1 建構函式 建構函式是類的一種特殊的成員函式 1 函式名與類名必須相同 2 沒有返回值 3 建構函式可以被過載 class circle circle int x,int y,int r 建構函式和普通成員函式不一樣,一般不顯示呼叫,在建立乙個物件時,建構函式被自動呼叫。建構函式的作用 物件一 出...

C 學習筆記 建構函式與析構函式

一 派生類建構函式的執行順序 1 呼叫基類建構函式,呼叫順序按照它們被繼承時宣告的基類名順序執行 2 呼叫內嵌物件建構函式,呼叫順序按各個物件在派生類內宣告的順序 3 執行派生類建構函式體中的內容 二 派生類析構函式的執行順序與建構函式相反 1 執行派生類析構函式 2 執行內嵌物件的析構函式 3 執...