Ir ao conteúdo
  • Cadastre-se

Sobrecarga de operadores ++,-- e - + em C++


joubet

Posts recomendados

:(

Vejam o programa e os erros:

#include <iostream>
#include <cstdlib>
using namespace std;

class sobrecargaAD
{
private:
double x;

public:
sobrecargaAD operator++(sobrecargaAD ad); /* posfixado */
sobrecargaAD operator++(); /* prefixado */
sobrecargaAD operator--(sobrecargaAD ad); /* posfixado */
sobrecargaAD operator--(); /* prefixado */
};

sobrecargaAD sobrecargaAD::operator++(sobrecargaAD ad)
{
sobrecargaAD incrent;

increment.x+x;

//return *this;

}

int main()
{
cout << "sobrecarga do operador *+" << endl;

sobrecargaAD incr (2);

return 0;
}

Qual seria um código satisfatorio para colocar no corpo da função

sobrecargaAD sobrecargaAD::operator++(sobrecargaAD ad)
{
sobrecargaAD incrent;

increment.x+x;

//return *this;

}

para que ela conseguisse sobrecarregar o operador ++ ? como usar este operador sobrecarregado em main() ?

Erros:

Sobrecarga_operador.cpp:12:41: error: postfix 'sobrecargaAD sobrecargaAD::operator++(sobrecargaAD)' must take 'int' as its argument

Sobrecarga_operador.cpp:14:41: error: postfix 'sobrecargaAD sobrecargaAD::operator--(sobrecargaAD)' must take 'int' as its argument

Sobrecarga_operador.cpp:18:56: error: postfix 'sobrecargaAD sobrecargaAD::operator++(sobrecargaAD)' must take 'int' as its argument

Sobrecarga_operador.cpp: In function 'int main()':

Sobrecarga_operador.cpp:32:24: error: no matching function for call to 'sobrecargaAD::sobrecargaAD(int)'

Sobrecarga_operador.cpp:32:24: note: candidates are:

Entre outros.

obrigado

Link para o comentário
Compartilhar em outros sites

  • 4 meses depois...

Cara ai vai mastigado bem explicado ok.

#include <iostream>
using namespace std;
class sobrecargaAD{
private:
double x;

public:
sobrecargaAD (double x1=9) {x=x1;}
//------------------------------------------prefixada
sobrecargaAD operator ++() {
++x;
return sobrecargaAD(x);}
sobrecargaAD operator --() {
--x;
return sobrecargaAD(x);}
//------------------------------------------posfixada
sobrecargaAD operator ++(int){
++x;
return sobrecargaAD(x-1);}
sobrecargaAD operator --(int){
--x;
return sobrecargaAD(x+1);}
//-----------------------------------------imprime valor de x
void imp()const{
cout << "(" << x << ")"<<endl;
}
};
//----------------------------------------função main com os objetos
int main()
{
sobrecargaAD p1,p2(3.5);
p1=p2;
cout<< "---------- Valor atual ------------"<<endl;
cout << "p1 = "; p1.imp();
cout << "p2 = " ; p2.imp();

cout<< "---------- Valor prefixada ------------"<<endl;
cout << "p1 = "; (p1++).imp();
cout << "p2 = " ; (p2--).imp();

cout<< "---------- Novo Valor atual ------------"<<endl;
cout << "p1 = "; p1.imp();
cout << "p2 = " ; p2.imp();

cout<< "---------- Valor posfixada ------------"<<endl;
cout << "p1 = "; (++p1).imp();
cout << "p2 = " ; (--p2).imp();
return 0;
}
}

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...