我是C++,IDE是Visual Studio 2012.我不知道为什么我不能这样做,根本没有任何意义.正如标题所说,我正在尝试将一个结构放在一个类中,但它根本不会让我这样做.我已经尝试将它放在公共,私有,受保护,然后尝试将其置于全球范围内,并且没有任何作用.
class foobar
{
public:
struct foo
{
int ass;
};
foo bar;
bar.ass = 1; //getting a weird error on this line
};
Run Code Online (Sandbox Code Playgroud)
我如何在类中放置结构?谢谢你的帮助
如果你想要做的是在构造类型的对象时ass
初始化成员,那么在C++ 11中你可以这样做:1
foo
class foobar
{
public:
struct foo
{
int ass = 1;
// ^^^
};
foo bar;
};
Run Code Online (Sandbox Code Playgroud)
上面的语法等同于更详细的基于构造函数的初始化,这是C++ 03中唯一的选项 (也可能是VS2012附带的VC11编译器版本,因为VS2012 不完全符合C++ 11标准):
class foobar
{
public:
struct foo
{
foo() : ass(1) { }
// ^^^^^^^^
int ass;
};
foo bar;
};
Run Code Online (Sandbox Code Playgroud)