Objetos de tipo de classe
Um objeto é uma região com tipos de armazenamento no ambiente de execução; para além de reter informações de estado, ele também define o comportamento.Objetos do tipo de classe são definidos usando nome da classe.Considere o fragmento de código a seguir:
// 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.
}
O código anterior declara uma classe (um novo tipo) chamada Account.Em seguida, usa esse tipo de novo para definir um objeto chamado CheckingAccount.
As operações a seguir são definidas pelo C++ para objetos do tipo de classe:
Atribuição.Pode ser atribuído a um objeto para outro.O comportamento padrão para esta operação é uma cópia de memberwise.Esse comportamento pode ser modificado, fornecendo um operador de atribuição definida pelo usuário.
Inicialização usando construtores de cópia.
A seguir é exemplos de inicialização usando construtores de cópia definida pelo usuário:
Inicialização explícita de um objeto.Por exemplo:
Point myPoint = thatPoint;
declara myPoint como um objeto do tipo Point e o inicializa com o valor de thatPoint.
Inicialização causada por passar como um argumento.Objetos podem ser passados para funções por valor ou por referência.Se eles são passados por valor, uma cópia de cada objeto é passada para a função.O método padrão para a criação da cópia é copy memberwise; Isso pode ser modificado, fornecendo um construtor de cópia definido pelo usuário (um construtor que leva a um único argumento do tipo "referência à classe").
Inicialização causada pela inicialização de valores retornados de funções.Objetos podem ser retornados de funções por valor ou por referência.O método padrão para retornar um objeto por valor é uma cópia de memberwise; Isso pode ser modificado, fornecendo um construtor de cópia definido pelo usuário.Um objeto retornado por referência (usando o ponteiro ou tipos de referência) não deve ser automático e local para a função chamada.Se for, o objeto referenciado pelo valor de retorno será ficaram fora do escopo antes que ele pode ser usado.
Sobrecarga nos operadores explica como redefinir a outros operadores em uma base de classe a classe.