Elemar DEV

Tecnologia e desenvolvimento .net

C++ 101 – Parte 16 – Inheritance

Olá pessoal. Tudo certo?!

C++ é uma linguagem fundamental! Com ela, conseguimos desenvolver software em alto e baixo nível. Por isso, tanto empenho nessa série.

Nesse post, falo sobre “herança”.

Mais uma vez, estou usando gist como repositório dos snippets de código. Por alguma razão, a visualização não funciona “bacana” no Google Reader (no blog, funciona).

Exemplo básico

Se você sabe “herdar” em C#, sabe em C++. Veja esse exemplo:

No exemplo:

  • Base é a classe base (dahn) e Derived é a classe derivada (herando de Base);
  • A notação para herança é igual a que conhecemos em C#;
  • O método Fee (na classe derivada) consegue chamar Foo (da classe base).

Herança pública x Herança privada

Considere alterar o método main para o código que segue:

Ao tentar compilar, verá o seguinte erro:

image

Razão: Por default, herança em C++ é privada. Ou seja, os métodos da classe base são “visíveis” apenas no corpo da classe derivada.

Para mudar isso, adicionamos o modificador public antes do nome da classe que estamos derivando. Veja:

Pegou a idéia?!

Repare que, omitindo o modificador, a herança é private.

Chamando o construtor da classe base

Assim como ocorre em C#, o construtor da classe base não é “herdado”. Entretanto, ele ainda pode ser evocado pelos construtores da classe derivada. Veja o Exemplo:

Simples, não!?

Protected

Membros privados de uma classe base não são visíveis em classes derivadas. Entretanto, em C++ também há protected (“privados” visíveis em classes derivadas). Veja o exemplo:

Virtual

Quando desejamos alterar um comportamento da classe base (método), devemos marcar esse método como virutal. Veja:

Era isso!

One Comment on “C++ 101 – Parte 16 – Inheritance

  1. Pingback: C++ 101 – Parte 20 – Conhecendo o (deprecated) ‘auto_ptr’ « Elemar DEV

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

WordPress.com Logo

Você está comentando usando sua conta WordPress.com. Sair / Mudar )

Imagem do Twitter

Você está comentando usando sua conta Twitter. Sair / Mudar )

Foto do Facebook

Você está comentando usando sua conta Facebook. Sair / Mudar )

Conectando a %s

Informação

Publicado às 08/07/2012 por em Post e marcado , .

Estatísticas

  • 427,397 hits
%d bloggers like this: