Sobrecarregamento de operadores

Publicado por Perfil removido em 13/12/2004

[ Hits: 5.988 ]

 


Sobrecarregamento de operadores



Em C++ é possível construir classes e utilizar os operadores da linguagem (++, --, [], ==, etc) para realizar operações nas suas classes. Isso chama-se sobrecarregamento de operadores. É muito simples de se usar e muito útil, além de deixar suas classes com um ar digamos assim, mais profissional. Para operadores unários, como o ++ ou o [], o sobrecarregamento pode ser feito dentro da declaração da classe, assim:

class teste {
public:
teste() { count = 0; };

int operator[](int i) { return vetor[i]; };
int operator++(int i) { return count += i;};
int operator*() { return count; };

protected:
int vetor[10];
int count;
};

Já para os operadores binários (==, <=, etc), a declaração pode ser feita fora da classe, assim:

inline bool operator==(teste &t1, teste &t2) {
if ( *t1 != *t2 )
return false;
int i;
for(i = 0; i < *t1 && t1[i] == t2[i]; i++)
;
if ( i == *t1 )
return true;
return false;
}

Veja que aqui eu já uso os operadores sobrecarregados na declaração da classe (* e []). Qualquer operador da linguagem pode ser sobrecarregado. Dois muito interessantes são o << e o >>, usados em entrada e saída.

Para sobrecarregá-los faça assim:

inline &ostream operator<<(ostream &file, teste &t) {
for(int i = 0; i < *t; i++)
file << t[i];
}

Agora você pode usar a construção

count << t

para imprimir um objeto da classe teste. O mesmo pode ser feito para entrada, basta mudar os argumentos de ostream para istream e o operador de << para >>.

Outras dicas deste autor

Instalando Google Chrome, Telegram e Skype no Ubuntu 18.04 LTS

Vídeo aula: Mudando o tema do Superkaramba

Ativando o anti-spam no Mozilla Thunderbird

Rodando Apache em máquina com IP falso (rede interna)

Gnome ou KDE 4? Que tal os dois?

Leitura recomendada

Exibindo código ASCII das teclas

Ocorrência de uma string em outra

Qt 4.5 (Desenvolvimento multi-plataforma em C++ com Qt)

Programando no Ubuntu - aplicações gráficas em C++ com Eclipse e Glade

Como executar um programa em C via Terminal [Vídeo]

  

Comentários
[1] Comentário enviado por scottys0 em 13/12/2004 - 12:09h

só um comentario ... o sobrecarregamento é uma palavra meio feia ... que não condiz com a funcionalidade.
O termo correto utilizado em livros e discussões é Sobrecarga de Operadores

[2] Comentário enviado por FelipeAbella em 09/11/2005 - 15:12h

Há dias eu procuro sobre o assunto!
Me foi útil



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts