? Linguagens de programação orientadas a objetos , como C + + ("C Plus Plus " ou CPP ) seguem um paradigma de programação orientada para a reutilização de código e construir hierarquias estruturais nesse código. Os desenvolvedores criar classes para encapsular os dados em termos de funcionalidade em partes lógicas. Eles também fazem isso porque certas técnicas em OOP , tais como herança , permitem a construção de aulas mais complexas a partir de outras mais simples . Os desenvolvedores também podem controlar a forma como as aulas são implementados usando classes de modelo de design chamado de " interfaces" ou " classes abstratas " que determinam como outros programadores usam essas classes. Objetos e Herança
Ao criar classes e objetos para um programa em C + + , o programador muitas vezes descobre que diferentes classes se sobrepõem ou compartilhar uma funcionalidade semelhante. Ela, então, tem duas opções: escrever o código funcional para ambas as classes , ou criar uma classe de "base" com todos os traços comuns e características dessas classes. Em seguida , as duas classes podem "inerentes " esses traços ao adicionar os seus próprios. Por exemplo, se o programador escreve " Associados " e classes "gerente" para um aplicativo de negócios , ela pode criar uma única classe "Funcionário ", que contém a funcionalidade comum e entre sócios e gerentes.
Funções virtuais
classe base para qualquer outra classe pode conter definições sobre o que as classes podem fazer. e as informações que eles contêm . Assim , a classe Employee do exemplo pode conter uma função para calcular o salário que contém uma fórmula específica. As classes Manager e Associados inerentes que função e, portanto, a fórmula . No entanto , os gerentes e associados podem requerer fórmula diferente para calcular salário. Neste caso , a classe de base que contêm uma função de " virtual" . A classe base define um comportamento padrão, mas as classes criança poderia, então, criar suas próprias fórmulas e funções , se necessário.
As classes abstratas
Paralelamente virtuais funções , há "puros" funções virtuais . Funções virtuais puras não contêm uma definição de função. Em vez disso, eles simplesmente definir um nome de função . Assim, por exemplo , a função de cálculo do salário na classe base do empregado seria declarado como virtual sem uma definição. Em seguida , as classes Manager e Associados iria definir suas próprias funções para calcular salário. Quando uma classe contém um ou mais puramente funções virtuais , é chamado de uma classe abstrata. Isso ocorre porque as classes com funções virtuais puras não podem se tornar objetos.
C + + Interfaces
Desde classes abstratas não podem se tornar objetos, eles são chamados de "interfaces ". Interfaces são classes abstratas , muitas vezes contendo apenas as funções virtuais puras , que servem como um modelo para outras classes comuns. Portanto, se o exemplo do empregado contém funções virtuais só puros , então o programador desenha as classes Manager e Associados para herdar de Empregado como uma interface , ou seja, eles devem implementar as funções virtuais puras da classe Empregado . Enquanto o padrão ISO C + + não contém uma " interface de " palavra-chave específica , a implementação da Microsoft de C + + faz ( Fonte 3). Aqui está um exemplo para ilustrar este relationship.class Employee {
público : virtual int calcSalary () = 0; //função virtual pura
private: int ID ;} ;
classe Associado : Funcionário público {
público : int calcSalary ( ) {//Associate * deve * implementar calcSalary ou obter um erro /* código * /}} ;