GCC default int data member initialization
<p>The following code never prints out the counter, assuming the compiler does something intelligent to initialize int data member types to zeros?</p>

<pre><code>include &lt;iostream&gt;

using namespace std;

class A {
  public:
    int a;
    int b;

    A(): b(a), a(b) { }
};

int main()
{
    A* p = new A;
    int counter = 0;

    while (!(p-&gt;a)) {
        p = new A;
        counter++;
    }

    cout &lt;&lt; counter &lt;&lt; endl;
}
</code></pre>
