Martin Slot tak!
Jeg glemte et plus i ovenståne kode.
Kan du forklare lidt om hvad der sker?
Og hvorfor duer denne kode ikke:
#include<iostream>
using namespace std;
class Kasse
{
private:
float fPris;
public:
Kasse(float pris= 0.0);
Kasse operator+(Kasse enVare);
void udskrivPris();
};
Kasse::Kasse(float pris):fPris(pris)
{
}
Kasse Kasse::operator+(Kasse enVare)
{
float tmpPris = fPris+enVare.fPris;
return(Kasse(tmpPris));
}
void Kasse::udskrivPris()
{
cout<<"total pris= "<<fPris<<endl;
}
int main()
{
Kasse enVare(112.50);
Kasse enAndenVare = 46.50;
Kasse enTredieVare = enVare+120.50;
//hvad sker der?
Kasse enFjerdeVare = 130.0 + enAndenVare;
enTredieVare.udskrivPris();
enFjerdeVare.udskrivPris();
return 0;
}
Hvorfor bliver floats + operator ikke kaldt
i første tilfælde?
Og hvordan kan det være at når man har
en friend operator+ at float + Kasse
duer?
Tak!
Indlæg senest redigeret d. 14.05.2010 08:01 af Bruger #15732