嵌套类的Typedef

时间:2012-04-13 15:45:02

标签: c++ typedef nested-class

这是在C ++中输入内部类的正确方法吗?

class Foo
{
public:
    struct A
    {
        typedef bool Type;
    };

    struct B
    {
        typedef int Type;
    };

    typedef struct Foo::nested;
};

代码在Visual Studio 2008下编译,但我不确定它是否确实是嵌套类的typedef,或者标准是否允许它。

1 个答案:

答案 0 :(得分:1)

不确定你在追求什么。如果您想键入一个现有的嵌套结构,请尝试:

typedef struct Foo::A nested;

在这种情况下,您很可能希望将typedef放在Foo结构之外 - 您已经可以从内部访问A

如果你想在Foo内为另一个结构的嵌套类型创建一个typedef,你可以这样做:

typedef struct Bar::nested myNested;

然后你也可以从外部引用它作为Foo :: myNested,只要你声明typedef是公开的。