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