類別類型物件
物件是執行環境中具類型的儲存區域,除了保留狀態資訊之外,還可用於定義行為。 類別類型物件是使用 class-name 所定義。 請考慮下列程式碼片段:
// class_type_objects.cpp
class Account
{
public:
Account() // Default constructor
{
}
Account( double ); // Construct from double.
double& Deposit( double );
double& Withdraw( double, int );
};
int main()
{
Account CheckingAccount; // Define object of class type.
}
上述程式碼會宣告稱為 Account 的類別 (新類型)。 然後會使用這個新類型定義名為 CheckingAccount 的物件。
下列作業是 C++ 針對類別類型物件所定義:
指派。 一個物件可以指派給另一個。 此作業的預設行為是成員複本。 此行為可以藉由提供使用者定義的指派運算子進行修改。
使用複製建構函式的初始化。
以下是使用使用者定義的複製建構函式初始化的範例:
物件的明確初始化。 例如:
Point myPoint = thatPoint;
會將 myPoint 宣告為 Point 類型的物件,並且將它初始化為 thatPoint 的值。
藉由傳遞引數進行的初始化。 物件可以透過傳值和傳址的方式進行傳遞。 如果是以傳值的方式傳遞,則每個物件的複本都會傳遞至函式。 建立複本的預設方法是成員複本,這個複本可以藉由提供使用者定義的複製建構函式進行修改 (接受「類別參考」類型單一引數的建構函式)。
函式傳回值的初始化所進行的初始化。 物件可以透過傳值和傳址的方式傳回。 以傳值方式傳回物件的預設方法是成員複本,這個複本可藉由提供使用者定義的複製建構函式進行修改。 以傳址方式傳回的物件 (使用指標或參考類型) 對於所呼叫的函式不應同時為自動和區域。 如果同時為這兩者,則傳回值所參考的物件將會在超出範圍後才能使用。
多載運算子將說明如何以逐一類別為基礎重新定義其他運算子。