-1

これは、C ++で内部クラスをtypedefする正しい方法ですか?

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

    struct B
    {
        typedef int Type;
    };

    typedef struct Foo::nested;
};

コードはVisualStudio2008でコンパイルされますが、それが実際にネストされたクラスのtypedefであるかどうか、または標準で許可されているかどうかはわかりません。

4

1 に答える 1

3

あなたが何を求めているのかわからない。既存のネストされた構造の1つをtypedefする場合は、次を試してください。

typedef struct Foo::A nested;

Fooこの場合、typedefを構造体の外部に配置する必要があります。すでにA内部からアクセスできます。

別の構造体のネストされた型の内部にtypedefを作成したい場合はFoo、次のようにすることができます。

typedef struct Bar::nested myNested;

次に、typedef publicを宣言している限り、外部からもFoo::myNestedとして参照できます。

于 2012-04-13T15:49:00.477 に答える