$ toque polimorfismo.cc
$ nano polimorfismo.cc
Exemplo 01: sobrecarga da função
Quando os argumentos deles são únicos, você pode utilizar duas funções principais com o mesmo título em C++. Vários métodos são chamados com base na quantidade e no tipo de parâmetros, e esse conceito é conhecido como sobrecarga de função. Iniciamos nosso primeiro exemplo com o espaço de nome "std" padrão e o cabeçalho de entrada de entrada "iostream". Três funções definidas pelo usuário são definidas, cada uma contendo uma única instrução Cout. A primeira função contém um parâmetro de tipo inteiro, o segundo contém o parâmetro de tipo duplo e o último contém dois parâmetros de tipo duplo. As duas primeiras funções "val" simplesmente obtêm valor do método Main () e exibem -o no shell através da instrução Cout. O terceiro é obter dois valores de tipo duplo do principal () e exibir a soma de ambos os valores no shell com a ajuda da cláusula Cout. A função principal () é simplesmente chamar três métodos de mesmo nome, um após o outro, passando por diferentes valores.
#incluir
usando namespace std;
int val (int n1)
cout <<"Integer: "<< n1 <
Val duplo (N1 duplo)
cout <<"Double: "<< n1 <
Val duplo (N1 duplo, N2 duplo)
cout << "Sum: "<< n1+n2<
int main ()
val (10);
Val (9.25);
Val (4.1, 8.23);
retornar 0;
A compilação deste código C ++ é bem -sucedida usando o compilador G ++ no shell.
$ g ++ polimorfismo.cc
Depois de executar o código, temos os valores exibidos no console abaixo.
$ ./a.fora
Exemplo 02: sobrecarga do operador
A sobrecarga do operador é semelhante à sobrecarga de métodos porque usa o mesmo sinal, mas vários operando para métodos de operador distintos. Então, iniciamos este exemplo declarando uma nova classe "A" após o espaço para nome e biblioteca de cabeçalho. A classe A contém um membro de dados privado do tipo inteiro "V" e uma função construtora A () usada para inicializar a variável "V" com um valor de 5. Aí vem a função do operador para incrementar o valor de "V" por 3. Como o nome mostra, o operador “+” foi sobrecarregado aqui. A função show () está aqui para mostrar o valor incrementado de uma variável “V.Após a criação de um objeto, o construtor a () será executado. O objeto foi usado para chamar a função do operador "++". O OBJ é novamente utilizado para chamar a função show () para exibir o valor incrementado.
#incluir
usando namespace std;
classe A
privado:
na TV;
público:
A (): v (5)
operador void ++ ()
v = v + 3;
void show ()
cout << "Value after increment: " << v << endl;
;
int main ()
Um obj;
++obj;
obj.mostrar();
retornar 0;
Após a compilação, não temos erros. O valor incrementado da variável "V" foi exibido em nossa tela de terminal ao executar este código.
$ g ++ polimorfismo.cc
$ ./a.fora
Exemplo 03: Função substituindo
A classe base e suas subclasses descendentes podem ter o mesmo nome dos métodos. Quando usamos uma instância da subclasse para invocar o método, a função da classe estendida é executada em vez da classe pai. Como resultado, várias funções serão executadas dependendo do objeto que invocava o método. Em C ++, isso é chamado de substituição do método. Então, inicializamos três classes no código. A classe A é a classe pai das duas classes infantis B e C. Todas as classes têm o mesmo nome função, "show ()", exibindo suas especificações via instrução Cout. O método principal () criou 3 objetos para 3 classes para chamar as respectivas funções.
#incluir
usando namespace std;
classe A
público:
void show ()
cout << "Base class A… " << endl;
;
Classe B: Public a
público:
void show ()
cout << "Derived class B… " << endl;
;
classe C: public a
público:
void show ()
cout << "Derived class C… " << endl;
;
int main ()
A1;
O1.mostrar();
B o2;
O2.mostrar();
C o3;
O3.mostrar();
retornar 0;
Temos todos os métodos executados de todas as classes ao executar este arquivo de código.
Exemplo 04: Funções virtuais
Se usarmos uma referência de classe base “Ponteiro” para se referir a um objeto de classe derivada, podemos nem ser capazes de contornar os métodos em C++. Nessas circunstâncias, o uso de métodos virtuais na classe pai garante que o método pode ser substituído. Então, criamos um pai Classe A com sua classe infantil B. Ambas as classes têm o mesmo nome funções, mas a função da classe pai contém a palavra -chave “Virtual.”Em Main (), o objeto de classe B“ B ”foi usado como referência à classe pai“ A ”objeto de ponteiro“ A.”
#incluir
usando namespace std;
classe A
público:
Virtual Void Show ()
cout << "Base class A… " << endl;
;
Classe B: Public a
público:
void show ()
cout << "Derived class B… "retornar 0;
Ao executar este código, o método de classe derivado foi executado usando a palavra-chave virtual na função de mesmo nome definida pela classe pai.
$ g ++ polimorfismo.cc
$ ./a.outg
Conclusão:
Isso se tratava de usar o polimorfismo em C ++ usando alguns de seus conceitos básicos. Para torná -lo suave, abordamos a sobrecarga de funções, a substituição da função, a sobrecarga do operador e o conceito de função virtual. Esperamos o melhor feedback para este trabalho.