delorie.com/archives/browse.cgi | search |
From: | "Miguel Ángel R." <migue_39n AT hotmail DOT com> |
Newsgroups: | comp.os.msdos.djgpp |
Subject: | Overloading operands with doubles |
Date: | Mon, 13 Mar 2000 14:38:16 +0100 |
Organization: | Telefonica Transmision de Datos |
Lines: | 45 |
Message-ID: | <8aiqko$br6$1@talia.mad.ttd.net> |
NNTP-Posting-Host: | 195.57.122.109 |
X-Priority: | 3 |
X-MSMail-Priority: | Normal |
X-Newsreader: | Microsoft Outlook Express 5.00.2919.6600 |
X-MimeOLE: | Produced By Microsoft MimeOLE V5.00.2919.6600 |
To: | djgpp AT delorie DOT com |
DJ-Gateway: | from newsgroup comp.os.msdos.djgpp |
Reply-To: | djgpp AT delorie DOT com |
/* Hello All! I'm having troubles with this very simple class when I try to overload the + operand. It runs with shorts expresions: (i.e: a+b+a+b+a+b) but returns NaN ("Not a Number" numeric comprocesor exception, (DJGPP FAQ section 11.5)) or hungs... I supouse that the class is well definied because runs with <int> instead of <double> :-? (My computer is a Pentium MMX) Can anyone help me? Thank's for your time! ---------------------------------------------------------------------------- -- */ #include <stdio.h> class Euro{ private: double eurocents; public: Euro(void) {eurocents=0;} Euro(double const euros) {eurocents=(euros * 100);} double Euros(void) {return(eurocents / 100);} Euro operator+ (const Euro &op) {return(Euro((eurocents + op.eurocents) / 100));} }; int main (){ Euro a(1),b(1),sum; sum=a+b; // sum=a+b+a+b+a+b+a+b+a+b+a+b+a+b+a+b+a+b+a+b+a+b+a+b+a+b+a+b; // It compiles but :'( printf("\nSum: %f",sum.Euros()); }
webmaster | delorie software privacy |
Copyright © 2019 by DJ Delorie | Updated Jul 2019 |