C++中模板的某种用法

 mobiledu2502861465 发布于 2022-11-03 20:02

看一些代码看到源码中模板的写法:

// DoublyLinkedListLink
template
class DoublyLinkedListLink {
public:
    Element*    next;
    Element*    previous;
};

// DoublyLinkedListMemberGetLink
template Element::* LinkMember = &Element::fLink>
class DoublyLinkedListMemberGetLink {
private:
    typedef DoublyLinkedListLink Link;

public:
    inline Link* operator()(Element* element) const
    {
        return &(element->*LinkMember);
    }

    inline const Link* operator()(const Element* element) const
    {
        return &(element->*LinkMember);
    }
};

这行代码:

template Element::* LinkMember = &Element::fLink>

模板的第二个参数是什么用法,没搞懂什么意思..
没搞懂模板这种用法的目的是啥

1 个回答
  • 看样子第二个参数DoublyLinkedListLink<Element> Element::* LinkMember是个指向Element里面的成员的指针,如果这样想的话,那就是Element类型里面,有一个成员的类型是DoublyLinkedListLink<Element>,这个语句的意思就是声明了一个成员指针类型,然后给它赋了个默认参数&Element::fLink。我在stackoverflow上发现个有点相似的问题,题主看看,希望对你有帮助http://stackoverflow.com/ques...

    2022-11-12 01:47 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有