Bar
- внутренняя структура, определенная внутри Foo
. Создание объекта Foo
не создает неявно членов Bar
. Вам необходимо явно создать объект Bar, используя синтаксис Foo::Bar
.
Foo foo;
Foo::Bar fooBar;
fooBar.otherdata = 5;
cout << fooBar.otherdata;
В противном случае,
Создание экземпляра Bar в качестве члена в Foo
классе.
class Foo{
public:
struct Bar{
int otherdata;
};
int somedata;
Bar myBar; //Now, Foo has Bar's instance as member
};
Foo foo;
foo.myBar.otherdata = 5;