W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
現(xiàn)在假設(shè)我們要?jiǎng)?chuàng)建一個(gè)結(jié)構(gòu)體來(lái)表示一個(gè)矩形。問(wèn)題在于,我需要提供哪些信息來(lái)指定一個(gè)矩形?為了簡(jiǎn)化問(wèn)題,我們假設(shè)矩形是垂直方向或水平方向的,沒(méi)有傾斜角度。
存在幾種可能:我可以指定矩形的中心(兩個(gè)坐標(biāo))和大小(寬度和高度),我也可以指定矩形的一個(gè)角和矩形的大小,或是指定兩個(gè)相對(duì)的角。
現(xiàn)有程序中最常見(jiàn)的選擇是指定矩形的左上角和大小。在C++中,我們定義一個(gè)結(jié)構(gòu),包含著一個(gè)Point類型和兩個(gè)double類型。
struct Rectangle {
Point corner;
double width, height;
};
注意到一個(gè)結(jié)構(gòu)中可以包含另一個(gè)結(jié)構(gòu)。事實(shí)上這種情況很常見(jiàn)。當(dāng)然,這意味著為了創(chuàng)建一個(gè)Rectangle,我們得先創(chuàng)建一個(gè)Point:
Point corner = { 0.0, 0.0 };
Rectangle box = { corner, 100.0, 200.0 };
這段代碼創(chuàng)建了一個(gè)新的Rectangle結(jié)構(gòu)并對(duì)實(shí)例變量進(jìn)行了初始化。下圖展示了這些語(yǔ)句的效果。
我們可以用普通的方式來(lái)存取width和height:
box.width += 50.0;
cout << box.height << endl;
為了訪問(wèn)corner的實(shí)例變量,我們使用了一個(gè)臨時(shí)變量:
Point temp = box.corner;
double x = temp.x;
或者我們可以把兩條語(yǔ)句組合在一起:
double x = box.corner.x;
這條語(yǔ)句最好是從右向左讀: "從box的corner中抽取x,然后把它賦給局部變量x。"
當(dāng)我們談到組合時(shí),我必須指出,實(shí)際上你可以同時(shí)創(chuàng)建Point和Rectangle:
Rectangle box = { { 0.0, 0.0 }, 100.0, 200.0 };
最里面的大括號(hào)中是點(diǎn)corner的坐標(biāo);它們組成了新的Regtangle中三個(gè)值中的第一個(gè)。這條語(yǔ)句是嵌套結(jié)構(gòu)的一個(gè)例子。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: