Ir para conteúdo

Arquivado

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

Peixoto

Mostrar saida de função sobrecarregada de operador

Recommended Posts

:upset:

Imaginei que isto estivesse errado, fiz por não ver solução melhor no momento.. Eu tentei fazer:

 

Sobrecarga Sobrecarga::operator+(Sobrecarga s1)
{
Sobrecarga temp(0.0);
temp.x= x + s1.x;
temp.y= y + s1.y;
temp=s1;
return temp;
}

 

Mas isso também está errado, pois não vejo como retornar temp para a

Acho que fazer:

 

temp=s1;

 

não quardaria o valor certo. Não vejo uma solução que retorne corretamente temp; a partir do parâmetro s1 para mostrar:

cout << "Saidal de \"a+\"." << endl;
   a+;
  //cout << a << endl; 

 

Que fazer?

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

:upset:

Imaginei que isto estivesse errado, fiz por não ver solução melhor no momento.. Eu tentei fazer:

 

Sobrecarga Sobrecarga::operator+(Sobrecarga s1)
{
Sobrecarga temp(0.0);
temp.x= x + s1.x;
temp.y= y + s1.y;
temp=s1;
return temp;
}

 

Mas isso também está errado, pois não vejo como retornar temp para a

Acho que fazer:

 

temp=s1;

 

Criei outro erro na função de sobrecarga.

 

Alterei a chamada da sobrecarga do operador +

int main()
{

    Sobrecarga a(4.0);
    cout << "Saidal de \"a+\"." << endl;
    [i]a=a+a;[/i] // Fiz esta mudança.
  cout << a << endl;
    return 0;
}

 

O erro de compilação sumiu, mas o erro lógico da função de sobrecarga de + permanece.

 

Que fazer?

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Peixoto,

 

Na função de sobrecarga tente fazer isto:

 

Sobrecarga Sobrecarga::operator+(Sobrecarga s1)
{
   x = x + s1.x;
   y = y + s1.y;

   return *this;
}

 

O ponteiro this aponta para o próprio objeto que está chamando o método.

http://pt.wikibooks.org/wiki/Programar_em_C%2B%2B/Ponteiros_e_matrizes#O_ponteiro_.22this.22

 

Espero ter ajudado, FLW! :grin:

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.