这是在C ++中输入内部类的正确方法吗?
class Foo
{
public:
struct A
{
typedef bool Type;
};
struct B
{
typedef int Type;
};
typedef struct Foo::nested;
};
代码在Visual Studio 2008下编译,但我不确定它是否确实是嵌套类的typedef,或者标准是否允许它。
答案 0 :(得分:1)
不确定你在追求什么。如果您想键入一个现有的嵌套结构,请尝试:
typedef struct Foo::A nested;
在这种情况下,您很可能希望将typedef放在Foo
结构之外 - 您已经可以从内部访问A
。
如果你想在Foo
内为另一个结构的嵌套类型创建一个typedef,你可以这样做:
typedef struct Bar::nested myNested;
然后你也可以从外部引用它作为Foo :: myNested,只要你声明typedef是公开的。