我有点希望命名空间的使用能让我用已经存在的类的名字来定义类-所以命名空间将是区分它们的方式。我寻找它是因为我的服务器协议有一些数据类型,所以我需要实现它们的类,并将它们转换为字节。
这就是我所做的,它产生了错误:
#ifndef _PACKET_DATA_TYPES
#define _PACKET_DATA_TYPES
namespace mcp_t {
class mcp_t::int { //ERROR: expected an identifier
}
}
#endif
如果这是不可能的,命名空间在这里似乎有点无用--无论如何我都将被迫使用mcp_int
。
发布于 2013-03-16 05:41:47
int
是一个关键字,并且关键字不能用于命名用户定义的类型(即使是在命名空间中)。
恐怕你得叫你的类型而不是int
。
发布于 2013-03-16 05:41:43
在提供类的定义时,不应完全限定类的名称,也不应使用关键字作为类名称:
namespace mcp_t {
class my_int {
// ...
};
}
mcp_t::my_int x;
https://stackoverflow.com/questions/15442545
复制相似问题