我有以下一段代码让我有点失望:
template <typename T, typename K>
struct __UJstruct
{
...
char lchar[K::hLen];
...
};
K::hLen
在这种情况下做了什么?
答案 0 :(得分:4)
在此上下文中,hLen
很可能是类K
的静态数据成员。静态数据成员作为一个整体而不是单个对象属于该类型,如果您没有K
对象,您仍然可以像这样引用它们。
另一种可能性是hLen
可能是enum
内K
声明的一部分,如下所示:
class K
{
public:
enum Dimensions
{
hLen,
hHgt,
hDpth
};
...
};
在其他情况下,您还可以使用::
运算符来引用K
内声明的类型,如下所示:
class K
{
public:
class J
{
...
};
...
};
...
K::J j;