Question about bool in C++
<p>I was wondering why the code below only returns "Test" four times, instead of five?</p>

<pre><code>    #include &lt;iostream&gt;
    #include &lt;cassert&gt;
    using namespace std;

    class CountDown
    {
      public: //Application Programmer Interface
        CountDown(int start); // it is set to start
        void next(); // subtracts one from it
        bool end()const; //
     private:
        int it;
    };

    CountDown::CountDown(int start)
    {
        it = 0;
        it = start;
    }

    void CountDown::next()
    {
        it = it - 1;
    }

    bool CountDown::end() const
    {
        if (it &lt;= 0)
          cout &lt;&lt; "The countdown is now over" &lt;&lt; endl;
    }

    int main()
    {
        for( CountDown i = 5 ; ! i.end(); i.next())
        std::cerr &lt;&lt; "test\n";
    }
</code></pre>
