help-gplusplus
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: g++ 3.4.2 strange behavior


From: Paul Schneider
Subject: Re: g++ 3.4.2 strange behavior
Date: Mon, 01 Nov 2004 20:42:13 +0100
User-agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.3) Gecko/20041009

Even more confusing, by using a double temporary the answer changes again

#include <iostream>
#include <cstdlib>

using std::cout;
using std::endl;

class Hello {
public:
Hello(double a, double b, double c) : aNumber(static_cast<size_t>(((b-a)/c)))
        {
                double inter = (b-a)/c;
                secondNumber = static_cast<size_t>(inter);
                thirdNumber = static_cast<size_t>((b-a)/c);
        }
        size_t const number() const { return aNumber; }
        size_t numberTwo() const { return secondNumber; }
        size_t numberThree() const { return thirdNumber; }
        private:
                size_t const aNumber;
                size_t secondNumber;
                size_t thirdNumber;
};



int main(int argc, char *argv[])
{
        double a = 0.0;
        double b = 1000.0;
        double c = 0.01;
        Hello hello(a, b, c);
  cout << hello.number()  << endl;
  cout << hello.numberTwo() << endl;
  cout << hello.numberThree() << endl;

  return EXIT_SUCCESS;
}

gives:
99999
100000
99999


reply via email to

[Prev in Thread] Current Thread [Next in Thread]