繁体   English   中英

在类型名称后使用范围解析运算符是什么意思?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM