【问题标题】:"Extra Qualification on Member" error in template class模板类中的“成员额外资格”错误
【发布时间】:2016-09-10 07:51:55
【问题描述】:

起初,我认为错误是因为在observe 函数之前有void minimax<Data>::,但是当我删除它时,增加了更多错误。谁能帮我理解这里的问题是什么?

【问题讨论】:

    标签: c++ class templates header


    【解决方案1】:

    这是您声明成员函数的代码块:

    void MiniMax<Data>::observe (const Data& t);
    
    int getCount() const  {return count;}  
    

    您看到您在此处声明observe() 与getCount() 之间的区别了吗?

    只需将其更改为:

    void observe (const Data& t);
    

    【讨论】:

    • 问题是……当我取出MiniMax&lt;Data&gt;::时,它给了我10个编译错误。我还应该提到,我也在使用这个 .h 文件的驱动程序。我将用它来编辑原始帖子。
    • 对,所以改正那些编译错误。这绝对是错误的。你在这里所做的只是把代码搞得一团糟,以至于编译器在尝试吞下这个笨蛋后看不到真正的编译错误。
    • 如果那些“10个编译错误”你指的是你的cpp文件,问题很简单:你已经在头文件中正确定义了observe()成员模板函数,所以cpp 文件中的所有“observe()”爵士乐都是垃圾。将其完全删除。还要从 cpp 文件中删除构造函数,并在头文件中定义它。实际上删除整个 cpp 文件。见stackoverflow.com/questions/495021/…
    • 哦!对不起!我以为您的意思是更改函数实现名称,而不是声明。这给我留下了另一个编译错误,我现在正在处理它。感谢您的帮助。
    • 而且你需要将cpp文件完全删除,并将构造函数也放入头文件中。请参阅链接的问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多