嵌套类的类型定义

Typedef of a nested class

本文关键字:定义 类型 嵌套      更新时间:2023-10-16

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

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

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

不确定你在追求什么。 如果要对现有的嵌套结构之一进行 typedef,请尝试:

typedef struct Foo::A nested;

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

如果要在Foo内为另一个结构的嵌套类型创建 typedef,可以执行以下操作:

typedef struct Bar::nested myNested;

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