1

名前空間を使用することで、既存のクラスの名前でクラスを定義できるようになることを願っています。したがって、名前空間がそれらを区別する方法になります。私はいくつかのデータ型を持つサーバープロトコルを持っているので、これを求めています。そのため、それらを実装するクラスと、それらをバイトに変換する必要があります。
これは私がしたことであり、エラーが発生しました。

#ifndef _PACKET_DATA_TYPES
#define _PACKET_DATA_TYPES
namespace mcp_t {
    class mcp_t::int {  //ERROR: expected an identifier

    }
}
#endif

これが不可能な場合、名前空間はここでは少し役に立たないようです-mcp_intとにかく代わりに使用することを余儀なくされます。

4

2 に答える 2

7

intはキーワードであり、キーワードを使用してユーザー定義型に名前を付けることはできません(名前空間内であっても)。

恐れ入りますが、タイプを。以外の名前で呼び出す必要がありますint

于 2013-03-15T21:41:46.863 に答える
3

定義を提供するときにクラスの名前を完全に修飾したり、クラス名としてキーワードを使用したりしないでください。

namespace mcp_t {
    class my_int {
        // ...
    };
}

mcp_t::my_int x;
于 2013-03-15T21:41:43.460 に答える