2015-12-20 2 views
0

Скажем, у меня есть:Как члены объединения, содержащие примитивы и объекты, инициализированные на C++?

class Foo { 
    union { 
    double a; 
    std::string b; 
    }; 
}; 

Что конструктор по умолчанию, генерируемый компилятором делать? My understanding of the C++ standard - это то, что примитивы не инициализированы, а объекты. Так что здесь происходит?

ответ

4

Конструктор по умолчанию (а также конструктор копирования, оператор присваивания и деструктор) для объединения неявно объявлен удаленным, а также конструктор Foo. You'll see this после того, как вы попытаетесь создать экземпляр Foo.

+0

Спасибо за пример! – Pol

Смежные вопросы