ProPixel

Participe do fórum, é rápido e fácil

ProPixel
ProPixel
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Ir para baixo
covital
covital
Membro VIP

<b>Idade</b> Idade : 27
<b>Posts</b> Posts : 2107
<b>Créditos</b> Créditos : 0
<b>Respeito</b> Respeito : 18
God damn asshole
Vocabulário C++

Olhe o mundo a sua volta. Você pode entender uma grande parte da estrutura, do vocabulário e da organização do C++ apenas olhando a estrutura e a organização do mundo real, e refletindo sobre o vocabulário que usamos para falar sobre o mundo real. Muitos dos elementos do C++ - em da orientação a objeto em geral - tentam emular o modo como interagimos com o mundo real. Por exemplo, sempre que você olha em torno você vê uma grande quantidade de objetos. Nós organizamos esses objetos em nossas mentes arranjando-os em categorias, ou classes. Se você tem um livro em suas mãos, um livro é uma classe genérica de objetos. Você poderia dizer “esse objeto que eu tenho nas mãos é classificado como um livro.”Uma hierarquia de classes de objetos envolve a classe livro e a estende em duas direções. Livros são membros da classe mais geral publicações. Há ainda tipos específicos de livros, tais como livros de computação, livros de ficção, biografias, e assim por diante. A organização hierárquica se estende em ambos os sentidos: do mais geral para o mais específico. Em nosso exemplo, você tem nas mãos um determinado livro, um livro específico. No idioma OOP, você tem nas mãos uma instância da classe livro. Livros tem certos atributos que são comuns e portanto são compartilhados por todos os livros: uma capa, vários capítulos, não tem anúncios, etc. Livros tem também atributos comuns a publicações em geral: título, data de publicação, editora, etc. Tem ainda atributos comuns a objetos físicos: localização, tamanho, forma e peso. Essa idéia de atributos comuns é muito importante em C++. C++ modela o conceito de atributos comuns usando herança.

Há certas coisas que você faz com e para certos objetos, e essas ações são diferentes de objeto para objeto. Por exemplo, você pode ler um livro, folhear suas páginas. Você pode olhar um título, procurar um capítulo específico, pesquisar o índice, contar o número de páginas, etc. Essas ações são aplicáveis unicamente a publicações. Você não poderia folhear as páginas de um martelo, por exemplo. Entretanto, há ações que são genéricas e aplicáveis a todos os objetos físicos, como pegá-los. C++ também leva em conta esse fato e modela esses casos usando herança.

A natureza hierárquica das categorias de objetos, bem como nossa organização hierárquica de atributos de objetos e de ações, estão contidas na sintaxe e no vocabulário do C++. Por exemplo, quando projetando um programa você vai subdividi-lo em objetos, cada um dos quais tem uma classe. Você vai herdar atributos de uma classe base quando você criar uma classe derivada. Ou seja, você vai criar classes mais gerais de objetos e então fazer classes mais específicas, a partir das classes gerais, derivando o particular a partir do geral. Você vai encapsular o dados em um objeto com funções membro funções membro funções membro funções membro funções membro funções membro, e para ampliar classes você vai sobrecarregar e sobrescrever funções da classe base. Confuso? Vamos examinar um exemplo simples para ver o que esses termos significam na realidade.

O exemplo clássico de programação orientada a objeto é um programa gráfico que lhe permite desenhar objetos - linhas, retângulos, círculos, etc. - na tela do terminal. O que todos esses objetos tem em comum? Que atributos todos esses objetos compartilham? Todos tem uma localização na tela. Podem ter uma cor. Esses atributos - localização e cor - são comuns a todas as formas exibidas na tela. Portanto, como projetista do programa você poderia criar uma classe base - ou em outras palavras, uma classe genérica de objetos - para conter os atributos comuns a todos os objetos apresentados na tela. Essa classe base poderia ser denominada Forma, para melhor identificá-la como classe genérica. Você poderia então derivar diferentes objetos - círculos, quadrados, linhas - a partir dessa classe base, adicionando os novos atributos que são próprios de cada forma em particular. Um círculo específico desenhado na tela é uma instância da classe Círculo, que herdou uma parte de seus atributos de uma classe mais genérica denominada Forma. É possível criar tal conjunto de hierarquia em C, mas nem de longe com tanta facilidade quanto em C++. C++ contém sintaxe para tratar herança. Por exemplo, em C você poderia criar uma estrutura básica para conter os atributos localização e cor dos objetos. As estruturas específicas de cada objeto poderiam incluir essa estrutura básica e ampliá-la. C++ torna esse processo mais simples. Em C++, as funções são agrupadas, reunidas dentro de uma estrutura, e essa estrutura é denominada classe. Assim, a classe base pode ter funções, denominadas em C++ como funções membro, que permitam que os objetos sejam movidos ou re-coloridos. As classes derivadas podem usar essas funções membro da classe base tal como são, criar novas funções membro, ou ainda sobrescrever funções membro da classe base.

O mais importante recurso que diferencia C++ do C é a idéia de classe, tanto em nível sintático quanto em nível conceptual. Classes permitem que você use todas as facilidades de programação orientada a objeto - encapsulamento, herança e polimorfismo - em seus programas em C++. Classes são ainda a estrutura básica sobre a qual outros recursos são implementados, como sobrecarga de operador para novos tipos de dados definidos pelo programador. Tudo isso pode lhe parecer confuso ou desarticulado nesse momento, mas na medida em você de torne familiarizado com os conceitos e com esse vocabulário vai perceber todo o poder dessas técnicas.


Última edição por Luizinfaki em Ter 18 Dez 2012, 16:47, editado 1 vez(es)
Koily
Koily
Coordenador

<b>Idade</b> Idade : 29
<b>Posts</b> Posts : 4744
<b>Créditos</b> Créditos : 250
<b>Respeito</b> Respeito : 36
Foco, força e fé.
Warning : [C/C++] Vocabulário C++ ZsaKMOb
Bom tutorial faki! Parabéns! ;]
covital
covital
Membro VIP

<b>Idade</b> Idade : 27
<b>Posts</b> Posts : 2107
<b>Créditos</b> Créditos : 0
<b>Respeito</b> Respeito : 18
God damn asshole
Obrigado,
por que você deu uma parada com seu "curso" de java?
Koily
Koily
Coordenador

<b>Idade</b> Idade : 29
<b>Posts</b> Posts : 4744
<b>Créditos</b> Créditos : 250
<b>Respeito</b> Respeito : 36
Foco, força e fé.
Warning : [C/C++] Vocabulário C++ ZsaKMOb
Estive ocupado com um servidor de Minecraft. Mas vou voltar com ele!

Voltando ao assunto do tópico. :]
Conteúdo patrocinado
Ir para o topo
Permissões neste sub-fórum
Não podes responder a tópicos