I am working on How compilers handle initialization list. I came across a
case where I am not sure what should be the compiler behaviour.

*Example 1:-*

#include <iostream>

class A
{
    public:
        int x,y,z;
};

int main()
{
    A a1[2] =
    {
        { 1,2 },
        { 3,4 }
    };

    std::cout << "a1[0].z is " << a1[0].z << std::endl;

    return 0;
}

In above case a1[0].z is ? g++ shows it as 0 ( zero ). It is exactly 0 or
garbage value, I am not sure on that.

I tried lot of books and some documents , no where I found what C++ says
for initialization of class objects.

You can find handling of below case in almost every book.

*Example 2:- *

int arr[6] = {0};

In Example 2,  compilers will auto-fill all members with 0. It is mentioned
in books. But when it comes to User-defined datatypes nothing is mentioned.


Please share your thoughts on this. If you find any document related to
this, please share it as well.

Thanks
Sagar

-- 
You received this message because you are subscribed to the Google Groups 
"Algorithm Geeks" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].

Reply via email to