成员函数后星号的含义

时间:2016-09-22 12:11:55

标签: c++

我对C ++很新,我正在尝试解码下面显示的代码片段。特别是对于BaseSetAssoc::BlkType*行,我不确定星号在这种情况下的含义。我会很感激一些见解。

BaseSetAssoc::BlkType*
NMRU::accessBlock(Addr addr, bool is_secure, Cycles &lat, int master_id)
{
    // Accesses are based on parent class, no need to do anything special
    BlkType *blk = BaseSetAssoc::accessBlock(addr, is_secure, lat, master_id);

    if (blk != NULL) {
        // move this block to head of the MRU list
        sets[blk->set].moveToHead(blk);
        DPRINTF(CacheRepl, "set %x: moving blk %x (%s) to MRU\n",
                blk->set, regenerateBlkAddr(blk->tag, blk->set),
                is_secure ? "s" : "ns");
    }

    return blk;
}

2 个答案:

答案 0 :(得分:1)

https://<my company>.sharepoint.com/samplesp/Shared%20Documents 不是成员函数,它是一个类型,如果不是内部类,可能是枚举或结构。

需要BlkType来访问这样的&#34;内部&#34;类型(在类中定义, BaseSetAssoc::)。

所以BaseSetAssoc只是一个BaseSetAssoc::BlkType*指针。

答案 1 :(得分:0)

不是&#34;关注&#34;,&#34;&#34;在&#34;之前&#34;。正如评论所说:这意味着它将指针返回给BaseSetAssoc::BlkType,而不是整个BaseSetAssoc::BlkType

这是什么意思?这主要意味着指针可以是NULL,也可以是不存在的。在使用此函数的结果之前,几乎必需,您首先检查它是否为NULL