-1

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

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

    struct B
    {
        typedef int Type;
    };

    typedef struct Foo::nested;
};

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

4

1 回答 1

3

不知道你在追求什么。如果您想 typedef 现有的嵌套结构之一,请尝试:

typedef struct Foo::A nested;

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

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

typedef struct Bar::nested myNested;

然后,您也可以从外部将其称为 Foo::myNested,只要您将 typedef 声明为 public。

于 2012-04-13T15:49:00.477 回答