C&C++   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了c – 我可以继承模板类并将类型设置为我正在尝试继承的类的模板化子类吗?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
可怕的头衔,我知道.我将说明:

template <typENAME valType> struct MemMapFileHashTable : MemMapFileStructured<MemMapFileHashTable<ValType>::kvp> {
    struct kvp {
        uint32_t key;
        ValType val;
    };

    MemMapFileHashTable(const char* filename,bool write = false,int64_t chunkB = 65536) : MemMapFileStructured(filename,write,chunkB) { }
};

所以我的想法是创建一个具有某个ValType的哈希表,而该ValType又具有一个具有特定ValType的kvp.

为了利用我继承的类,我需要将kvp设置为类型说明符,但是由于kvp是在哈希表类中声明的,所以它不会让我.有没有办法说服它呢?

我可以在哈希表中创建@L_226_0@memMapFileStructured的实例,但是这将是我构建的类中的第5个连续继承,我不想打破我的卷.

解决方法

您可以使用额外声明和typedef来获得相同的结果.例:

template<typENAME valType> struct kvp_t {
    uint32_t key;
    ValType val;
};

template <typENAME valType> struct MemMapFileHashTable : MemMapFileStructured<kvp_t<ValType>> {

    typedef kvp_t<ValType> kvp;

    MemMapFileHashTable(const char* filename,chunkB) { }
};

如果您想继续在主模板中使用kvp类型,请成为我的访客.没有人能够分辨出来. MemMapFileHashTable< ValType> :: kvp仍然是你期望的.它可能是我们的小秘密,它真的是别的东西.

事实上,如果你在你的C编译器的库捅,你@R_417_9381@,之类的东西,哦,说的std ::矢量< TYPename> :: iterator是真的其他一些模板.它一直在发生.

大佬总结

以上是大佬教程为你收集整理的c – 我可以继承模板类并将类型设置为我正在尝试继承的类的模板化子类吗?全部内容,希望文章能够帮你解决c – 我可以继承模板类并将类型设置为我正在尝试继承的类的模板化子类吗?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。