註冊登錄
伊莉討論區返回首頁

thelord2009的個人空間http://www99.eyny.com/?5788411[收藏][複製][分享][RSS]

日誌

文組的外行人也能看懂程式語言的函數傳來傳去的意思

已有 664 次閱讀2023-1-3 11:46 AM

以下參考C++教學手冊第三版 洪維恩著 旗標出版股份有限公司

函數(或者稱為方法)內的參數就是傳值、傳位址(指標*)、傳參照&、傳物件

頁數
13-26~13-27
class CWin
宣告一個類別class,名稱是CWin
{
private:
char id;
int width,height;
宣告私有的private標籤的參數,char型別的id,int型別的width,height。
char id的char和id中間有一個空白鍵,如果寫成charid電腦怎麼會知道是char型別的id

public:
宣告公開的public標籤的函數set_member及area
void set_member(char i,int w,int h)
函數set_member有3個傳入引數(或參數),用逗點符號隔開,char i的char和i中間有一個空白鍵
{
id=i;
width=w;
height=h;
一旦呼叫函數set_member()並在()裡依序放入char i,int w,int h則3個傳入引數值會分別設定給private標籤的參數,char型別的id,int型別的width,height
}
int area(void)
area函數回傳型別是int,函數裡頭是void(沒有或不用傳入引數或參數)
{
return width*height;
return是指回傳什麼東西,在這裡是指width乘以height的int值
}
friend void largest(Cwin [],int);
這裡宣告(還沒定義裡面內容)了一個friend函數largest,回傳值型態是void(沒有回傳值),傳入的引數(或參數)是類別Cwin []陣列物件及一個int型別引數
};
class CWin的大括號到這裡結束,大括號的意思是把你的程式碼敘述包起來,每個敘述結束都要有一個;

void largest(CWin win[],int n)
函數largest定義傳入的引數設定是CWin類別物件win[](只要是以類別或struct型態宣告的就是物件,物件及參照存取成員用點.運算子,指標存取成員用箭號->運算子),因此你在待會的主函式main裡,如果呼叫函數largest,傳給它的()裡的東西也要和函數largest定義一樣,因此你不可以函數定義傳入的引數型態是int,卻在呼叫該函數時傳給它的引數是型態double
{

}

int main(void)
所有程式的執行從main開始,當呼叫到上方的程式碼敘述就會跳到上方執行
{
CWin win[3];
宣告CWin類別陣列物件win,在宣告的同時就會跑到上方class CWin裡頭預設的建構式實體化(有些章節會教你自己定義類別裡的各種建構式)。win[3]代表陣列編號從0開始,編號0、1、2共3個陣列物件
win[0].set_member('A',60,70);
意思是用編號0的win[0]物件存取呼叫函數set_member,並傳給函數set_member('A',60,70)這3個值來設定物件的欄位
對應到函數set_member的引數設定就是char i='A',int w=60,int h=70
largest(win,3);
意思是呼叫函數largest,並傳給函數一個win物件及一個int型態的值3
對應到函數largest的引數設定就是CWin win[]=win(引數設定名稱及傳入名稱一模一樣沒關係),int n=3
}

頁數10-21~10-23
int *func1(int *);
函數func1傳回值型態為int *,不是()裡的int *
int &func2(int &);
函數func1傳回值型態為int &,不是()裡的int &
int func(int);
由於引數是int型態,因此是傳值的函數
int func(int *);
由於引數是int*的指標型態,因此是傳位址(例如&num或儲存位址的指標ptr)的函數
int func(int []);
書裡有提到陣列的第一個編號是常數指標,因此引數是陣列型態也屬於傳位址(直接傳陣列名稱)的函數
int func(int &);
由於引數是int&的參照型態,因此是傳參照(對應傳入的引數為int參數)的函數

路過

雞蛋

鮮花

握手

雷人

評論 (0 個評論)

facelistdoodle 塗鴉板

您需要登錄後才可以評論 登錄 | 註冊
驗證問答 換一個

Archiver|手機版|廣告|聯絡我們|廣告查詢|廠商合作|伊莉

GMT+8, 2024-5-15 04:35 PM

回頂部