I have question on C++ behavior when initializing structures using a list.  For example, the following code behaves the same in C and C++.  The list initializes x:
struct X {
    int x;
};
int main(int argc, char *argv[])
{
    struct X xx = {0};    
    return 0;
}
Now, if I add a constructor, I find out through testing that the constructor is called instead of the simple initialization of the x member:
#include <iostream>
using namespace std;
struct X {
    int x;
    X(int);
};
X::X(int i)
{
    cout << "X(int i)" << endl;
    x = i;
}
int main(int argc, char *argv[])
{
    struct X xx = {0};
    return 0;
}
Output:
X(int i)
Is the behavior of C++ with an identical constructor (as above) to override the simple list initialization? Giving my testing that is what appears to happen.
Thanks!
