Отличающееся поведение между Java 5 и 6 при перегрузке общих методов

Конструктор по умолчанию, созданный для класса, не инициализирует встроенные типы, но он назовет конструктора по умолчанию на всех пользовательских участниках:

class Foo
{
public:
     int x;
     Foo() : x(1) {}
};

class Bar
{
public:
     int y;
     Foo f;
     Foo *fp;
};

int main()
{

    Bar b1; 
    ASSERT(b1.f.x == 1); 
    // We know nothing about what b1.y is set to, or what b1.fp is set to.

    // The class members' initialization parallels normal stack initialization.
    int y;  
    Foo f; 
    Foo *fp; 
    ASSERT(f.x == 1);
    // We know nothing about what y is set to, or what fp is set to.

}
18
задан Community 23 May 2017 в 11:45
поделиться