類別型別物件
物件是儲存在執行環境 ; 具型別的區域 除了保留狀態資訊,它也會定義行為。 類別型別物件使用定義的類別名稱。 請考慮下列程式碼片段:
// 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。
藉由傳遞做為引數所造成的初始化。 傳值方式或傳址時,物件可以被傳遞至函式。 如果將它們傳值方式傳遞,每個物件的複本會傳遞至函式。 建立複本的預設方法是對的複本。 這可以修改提供的使用者定義的複製建構函式 (使用建構函式型別的單一引數"類別參考")。
因從函式的傳回值的初始設定的初始設定。 傳值方式或傳址時,物件可能會傳回從函式。 傳回值的物件的預設方法就是對的複本。 這可以藉由提供使用者定義的複製建構函式來修改。 傳回參考 (使用指標或參考型別) 的物件不應該自動與呼叫的函式的本機。 如果是的話,傳回的值所參考的物件將已經超出範圍才可以使用。
多載運算子解釋如何重新定義類別的類別為基礎的其他運算子。