Compartilhar via


Implementação de protocolo de classe

As classes podem ser implementadas para impor um protocolo. Essas classes são chamadas “classes abstratas” porque nenhum objeto do tipo classe pode ser criado. Elas existem somente para derivação.

As classes são classes abstratas se contiverem funções virtuais puras ou se herdarem funções virtuais puras e não fornecerem uma implementação para todas elas. As funções virtuais puras são funções virtuais declaradas com especificador puro (= 0), como o exemplo:

virtual char *Identify() = 0;

A classe base, Document, pode impor o seguinte protocolo a todas as classes derivadas:

  • Uma função Identify apropriada deve ser implementada.

  • Uma função WhereIs apropriada deve ser implementada.

Ao especificar esse protocolo durante a criação da classe Document, o designer de classe tem certeza de que nenhuma classe de não abstrata pode ser implementada sem Identify e as funções WhereIs. A classe Document, portanto, contém estas instruções:

// deriv_ClassProtocolImplementation.cpp
// compile with: /LD
class Document {
public:
    //  Requirements for derived classes: They must implement
    //   these functions.
    virtual char *Identify() = 0;
    virtual char *WhereIs() = 0;
};

Consulte também

Referência

Visão geral de classes derivadas