next up previous contents
Next: Herança múltipla Up: Herança Previous: Funcionamento básico   Sumário

Controle de acesso

Quando uma classe é definida, seus membros (dados ou métodos) são colocados em seções internas cujo acesso pode ser público, privativo ou protegido. Seções de acesso público (precedidas pelo rótulo public) ou privativo (precedidas pelo rótulo private) já foram discutidas no capítulo anterior. Acesso a membros protegidos (em seção da declaração precedida pelo rótulo protected) é similar ao acesso a membros privativos, exceto para o caso acesso por parte de classes derivadas.

A forma geral de especificar derivação de classes é

class Derived : access-specifier base { ...};

Quando uma classe herda outra, todos os membros da classe base tornam-se também membros da classe derivada. O tipo de acesso da classe base de dentro da classe derivada é determinado pelo especificador de acesso. Este especificador de acesso pode ser public, private ou protected. Qualquer que seja o especificador de acesso, membros privativos da classe base continuam sendo propriedade privada da classe base, e não podem ser acessados por classes derivadas.

Quando o especificador de acesso é public, como especificado nos exemplos da seção anterior, então todos os membros públicos da classe base tornam-se membros públicos da classe derivada, e os membros protegidos da classe base tornam-se membros protegidos da classe derivada. (Esta é a diferença que existe entre membros privativos e mebros protegidos.)

Quando o especificador de acesso é private, todos os membros públicos e protegidos da classe base tornam-se membros privativos da classe derivada -- isto é, a classe derivada não pode transferir seus privilégios de acesso a outras classes.

Quando o especificador de acesso é protected, todos os membros públicos e protegidos da classe base tornam-se membros protegidos da classe derivada.


next up previous contents
Next: Herança múltipla Up: Herança Previous: Funcionamento básico   Sumário
Ivan Luiz Marques Ricarte 2001-06-01