[英]What does the scope resolution operator mean when used after a typename?
我有以下一段代码让我有点不满意:
template <typename T, typename K>
struct __UJstruct
{
...
char lchar[K::hLen];
...
};
在这种情况下, K::hLen
做什么?
在这种情况下, hLen
最有可能是类K
的静态数据成员。 静态数据成员整体上属于类型,而不是单个对象,并且如果您没有K
对象,您仍然可以像这样引用它们。
另一个可能是hLen
可能是K
内部声明的enum
一部分,如下所示:
class K
{
public:
enum Dimensions
{
hLen,
hHgt,
hDpth
};
...
};
在其他情况下,您也可以使用::
运算符来引用在K
内部声明的类型,如下所示:
class K
{
public:
class J
{
...
};
...
};
...
K::J j;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.