我希望使用命名空间可以让我定义具有已有类名称的类 - 因此命名空间将是区分它们的方法。 我寻求这个,因为我有服务器协议有一些数据类型所以我需要实现它们的类,以及它们转换为字节 这就是我所做的,它产生了错误:
#ifndef _PACKET_DATA_TYPES
#define _PACKET_DATA_TYPES
namespace mcp_t {
class mcp_t::int { //ERROR: expected an identifier
}
}
#endif
如果这不可能,名称空间在这里似乎有点无用 - 无论如何我都会被迫使用mcp_int
。
答案 0 :(得分:7)
int
是一个关键字,关键字不能用于命名用户定义的类型(甚至在命名空间内)。
我担心你不得不在int
以外的地方打电话给你。
答案 1 :(得分:3)
在提供定义时,您不应完全限定类的名称,也不应将关键字用作类名:
namespace mcp_t {
class my_int {
// ...
};
}
mcp_t::my_int x;