Ok in definitiva così funziona :
#include <iostream>
#include <string>
using namespace std;
class alien{
public :
alien(string n, int liv, int f)
{
nome=n;
livello=liv;
forza=f;
cout<<"Costruttore richiamato per "<<nome<<endl;
cout<<"Lv. "<<livello<<endl;
cout<<"Forza "<<forza<<endl;
}
alien operator+(alien & other)
{
return alien(nome + "+" + other.nome, livello + other.livello, forza + other.forza );
}
private:
string nome;
int livello;
int forza;
};
int main(int argc, const char * argv[])
{
alien alien1("pinco",4,7);
alien alien2("pallino",5,8);
alien alien3=alien1+alien2;
return 0;
}
ma non capisco effettivamente come fa la funzione a prendere i parametri di alien 1 per sommarli a quelli di alien 2 .
In :
alien operator+(alien & other)
{
return alien(nome + "+" + other.nome, livello + other.livello, forza + other.forza );
}
non abbiamo passato alcun riferimento per l'operando di sx (alien1), e non capisco effettivamente come funzioni