Структуры Союза, которые уже были объявлены c = + - PullRequest
0 голосов
/ 06 апреля 2020

Я пытаюсь создать союз, который содержит структуры. В конечном итоге я планирую создать в объединении множество различных структур, поэтому я хотел бы объявить их перед объединением, а затем просто использовать структуры в качестве имени типа.

Вот что я попробовал:


struct Bizz
{
int type;
std::string name;
};

struct Buzz
{
int type;
std::string name;
};

struct Bar
{
std::string name;
union of_type
{
Bizz bizz;
Buzz buzz;
} of_type;
};

struct Baz
{
std::string name;
union of_type
{
Bizz bizz;
Buzz buzz;
};
};

struct Foo
{
int type;
union of_type
{
Bar bar;
Baz baz;
} of_type;
};

Конечно, имена и поля являются лишь примерами, но структура basi c такая же.

Когда я пытаюсь присвоить значение:

Foo foo;
foo.type = 1;
foo.of_type.bar.name = "Hello";

I получить эту ошибку:

 error: use of deleted function ‘Foo::foo()

Что я здесь не так делаю?

...