有時將一個類的物件巢狀在另一個類中是很有用的。例如,來看以下宣告:
class Rectangle
{
private:
double length;
double width;
public:
void setLength(double);
void setWidth(double);
double getLength();
double getWidth();
double getArea();
};
class Carpet
{
private:
double pricePerSqYd;
Rectangle size; // size 是 Rectangle 類的範例
public:
void setPricePerYd(double p);
void setDimensions(double l, double w);
double getTotalPrice();
};
請注意,Carpet 類有一個名為 size 的成員變數,它是 Rectangle 類的一個範例。Carpet 類可以使用此物件來儲存房間尺寸並計算購買地毯的面積。圖 1 說明了兩個類是如何相關的。當一個類被巢狀在另一個類中時,稱為
物件組合。
圖 1 物件組合