Value initialization for non aggregate class with user defined constructor
<p>I am going through this question:<a href="http://stackoverflow.com/questions/4178175/what-are-aggregates-and-pods-and-how-why-are-they-special/7189821#7189821">Aggregates and pods</a>
When an object of  class in C++ with user defined default constructor, has only some of it's data members initialized,will the rest of data members be value initialized?
Following is the program I tried resulting in compilation error:</p>

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

class A {
public:
    A() {
        i=10;
        f = 10.0f;
        c = 45;
        d = 10.0;
    }

    void show() {
        cout &lt;&lt; i &lt;&lt; "\t" &lt;&lt; f &lt;&lt; "\t" &lt;&lt; c &lt;&lt; "\t" &lt;&lt; d&lt;&lt;"\n";
    }

private:
    int i;
    float f;
    char c;
    double d;
};

int main() {
    A a={20,20.0f};
    a.show();
}
</code></pre>
