Sobrecarregamento de operadores

Publicado por Perfil removido em 13/12/2004

[ Hits: 6.236 ]

 


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

Blocklist Atualizada no squid

Instalando Driver NVIDIA no Fedora

sources.list para squeeze, bem completa

Exibindo mensagens ao efetuar login

Wine com mais compatibilidade

Leitura recomendada

Programação para Arduino

Usando o friend em C++

Usando comandos do sistema em C

Qt - Adicionando uma foto em Label (QLabel)

Kylix - Ferramenta para programadores Delphi

  

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