Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Temas - solinac

#1
Hola, estoy haciendo un programa donde tengo que sobrecargar los operadores [] y += para sumar 4 numeros, pero no logro hacerlo, la suma me da igual a 0.

Ojala que me puedan ayudar para saber que estoy haciendo mal.

Cabecera:

#ifndef PERSONA_H
#define PERSONA_H

#include <iostream>
using namespace std;

class alumno:public persona
{
public:
friend class maestro;
alumno();
~alumno();
alumno(int&);
alumno(const int&);
int &operator[](int n);
alumno &operator[](alumno n);
int operator <=(alumno a);
int operator / (int n);
friend ostream& operator<< (ostream & salida,const alumno & a);
friend istream& operator>> (istream & entrada, alumno & a);
friend alumno & operator+=(const alumno a, const alumno b);
friend alumno & operator+=(const alumno & a, int o);
friend alumno & operator+=(int o, const alumno &b);
/*friend alumno & operator+(const alumno &a, const alumno &b);*/

protected:
int cal;
int pr;
int c[4];
int x;
int y;
int *ip;
};

#endif


Funciones:

alumno::alumno()
{
cal=0;
c[1]=0,c[2]=0,c[3]=0,c[4]=0;
x=0;
}

alumno::alumno(int& dato)
{
c[1]=dato;
c[2]=dato;
c[3]=dato;
c[4]=dato;
}


alumno::~alumno(){}

int & alumno::operator[](int n)
{
//cout<<"usamos operador []"<<endl;
return c[n];
}

ostream & operator<< (ostream & salida,const alumno & a)
{

salida << a.c[1];

//cout<<"usamos operador <<"<<endl;

return salida;
}

istream & operator>> (istream & entrada, alumno & a)
{   

entrada >> a.x;
//cout<<"usamos operador >>"<<endl;
return entrada;
}

alumno & operator+=(const alumno  a, const alumno b)
{
alumno t;
t.x = a.x + b.x;
cout<<"usamos operador +="<<endl;
return t;

}

alumno & operator+=(const alumno & a, int o)
{
alumno t;
t.x = a.x + o;
cout<<"usamos operador +="<<endl;
return t;

}

alumno & operator+=(int o,const alumno & b)
{
alumno t;
t.x = o + b.x;
cout<<"usamos operador +="<<endl;
return t;

}


main:

main:
[code]
#include <iostream>
#include "persona.h"

using namespace std;

int main()
{
alumno a1;
alumno alumno1,alumno2,alumno3,alumno4;
alumno A,B;

cout<<"Ingresa la calificacion de los parciales: \n";

cin>>a1[1];
cin>>a1[2];
cin>>a1[3];
cin>>a1[4];
system("cls");

alumno1=a1[1];
alumno2=a1[2];
alumno3=a1[3];
alumno4=a1[4];

cout<<"Parcial 1: "<<alumno1<<endl;
cout<<"Parcial 2: "<<alumno2<<endl;
cout<<"Parcial 3: "<<alumno3<<endl;
cout<<"Parcial 4: "<<alumno4<<endl;

//Esta es la suma que no me sale:
B=alumno1 += alumno2;

cout<<"Suma: "<<B<<endl;



system ("pause");
}


Muchas gracias de antemano
[/code]