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:
Funciones:
main:
Muchas gracias de antemano
[/code]
Ojala que me puedan ayudar para saber que estoy haciendo mal.
Cabecera:
Código [Seleccionar]
#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:
Código [Seleccionar]
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:
Código [Seleccionar]
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]