恐怕你得把你的类型命名为
我有点希望使用名称空间将允许我使用已经存在的类的名称来定义类-因此名称空间将是区分它们的方法。我之所以这样做,是因为我有一些数据类型的服务器协议,所以我需要实现它们的类,以及它们到字节的转换。
这就是我所做的,它产生了错误:
#ifndef _PACKET_DATA_TYPES
#define _PACKET_DATA_TYPES
namespace mcp_t {
class mcp_t::int { //ERROR: expected an identifier
}
}
#endif
如果这是不可能的,命名空间在这里似乎有点无用-我将被迫使用mcp_int
代替。
int
是关键字,关键字不能用于命名用户定义的类型(即使在名称空间内)。
int
以外的东西。在提供类的定义时不应该完全限定类的名称,并且不应该使用关键字作为类名:
namespace mcp_t {
class my_int {
// ...
};
}
mcp_t::my_int x;