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 回答