lucky3778 2022-06-20 20:44 采纳率: 81.8%
浏览 52
已结题

关于模板类继承,这个程序该怎么改不报错?



#include <iostream>
#include <string>
using namespace std;

class interface
{
public:
    bool say()
    {
        printf("interface ok\n");
        return true;
    }
};


template<typename gf>
class grandfather
{
private: 
    string mgf;
public:
    grandfather(string igf)
    {
        mgf = igf;
    }
    
    template<typename TResult>
    TResult CallFunction(TResult& func(gf))
    {
        gf cgf;
        TResult result;
        result = func(cgf);
        return result;
    }
};


template<typename f>
class father :public grandfather<f>
{
private: 
    string mf;
protected:
    father():grandfather<f>(mf)//顺便调用基类的有参构造
    {}
public:
    bool Fun_father_text(f cfa)
    {
        retrun cfa.father_text();
    }
    template<typename TResult>
    bool father_text()
    {
        bool result;
        result = this->CallFunction<bool>(Fun_father_text);
    }
};


class son :public father<interface>
{
    bool father<interface>::father_text();//结合这个
};

int main()
{
    son son1;
    if (son1.father_text())//应该怎么改才能让这个不报错
    {
        cout << "ture" << endl;
    }
    else
    {
        cout << "fase" << endl;
    }
    return 0;
}


上面这个是程序,就只需要不报错就行了,我改了son的声明方式,或者虚函数都没有不报错。其实就是想纠正一些我的知识错误。感谢

  • 写回答

3条回答 默认 最新

  • flower980323 2022-06-21 16:09
    关注

    建议买本C++Prime学习好语法,再写代码,下面这写的啥玩意

    class son :public father<interface>
    {
        bool father<interface>::father_text();//结合这个
    };
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 7月6日
  • 已采纳回答 6月28日
  • 修改了问题 6月20日
  • 创建了问题 6月20日

悬赏问题

  • ¥15 vue2中使用计算属性
  • ¥50 远程桌面打开Mastercam、没有许可证、物理机打开正常
  • ¥15 ubuntu安装gdal后java读取tif文件报错
  • ¥15 请问lammps怎么做两种金属连接的原子浓度分布图
  • ¥15 求jacquard数据集
  • ¥15 w10部分软件不能联网
  • ¥15 关于安装hbase的问题(操作系统-windows)
  • ¥15 novnc连接pve虚拟机报错安全协议不支持262
  • ¥15 设备精度0.03给多少公差能达到CPK1.33
  • ¥15 qt+ffmpeg报错non-existing PPS 0 referenced