Enclave_ 2022-04-20 20:46 采纳率: 85.2%
浏览 79

模板类如何在类外定义构造函数

模板类如何在类外定义构造函数

#include <iostream>
using namespace std;
template<class t>
class Absolute
{
private:
    t item;
public:
    Absolute(t temp);
    t getValue(void)const;
};
template<class t>
Absolute<t>::Absolute(t temp):item(temp)
template<class t>
t Absolute<t>::getValue(void)const
{
    return (item>=0)?item:(-item);
}
int main(void) {
    char c='\0';
    int i=0;
    long l=0;
    scanf("%c%d%ld",&c,&i,&l);
    float f=1.1;
    double d=2.2;
    scanf("%f%lf",&f,&d);
    Absolute<char> dc(c);
    cout<<dc.getValue()<<endl;
    Absolute<int> di(i);
    cout<<di.getValue()<<endl;
    Absolute<long> dl(l);
    cout<<dl.getValue()<<endl;
    Absolute<float> df(f);
    cout<<df.getValue()<<endl;
    Absolute<double> dd(d);
    cout<<dd.getValue()<<endl;
    return 0;
}


13行我在类外定义的构造 但报错了

  • 写回答

1条回答 默认 最新

  • 关注

    Absolute<t>::Absolute(t temp):item(temp)之后应该加{}, 函数体的{}不能没有
    改成
    Absolute<t>::Absolute(t temp):item(temp){}
    或者改成

    template<class t>
    Absolute<t>::Absolute(t temp){
        item = temp;
    }
    
    
    

    你题目的解答代码如下:

    #include <iostream>
    using namespace std;
    template<class t>
    class Absolute
    {
    private:
        t item;
    public:
        Absolute(t temp);
        t getValue(void)const;
    };
    template<class t>
    Absolute<t>::Absolute(t temp){
        item = temp;
    }
    template<class t>
    t Absolute<t>::getValue(void)const
    {
        return (item>=0)?item:(-item);
    }
    int main(void) {
        char c='\0';
        int i=0;
        long l=0;
        scanf("%c%d%ld",&c,&i,&l);
        float f=1.1;
        double d=2.2;
        scanf("%f%lf",&f,&d);
        Absolute<char> dc(c);
        cout<<dc.getValue()<<endl;
        Absolute<int> di(i);
        cout<<di.getValue()<<endl;
        Absolute<long> dl(l);
        cout<<dl.getValue()<<endl;
        Absolute<float> df(f);
        cout<<df.getValue()<<endl;
        Absolute<double> dd(d);
        cout<<dd.getValue()<<endl;
        return 0;
    }
    

    如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!

    img

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 4月20日

悬赏问题

  • ¥15 GPT写作提示指令词
  • ¥20 如何在cst中建立这种螺旋扇叶结构
  • ¥20 根据动态演化博弈支付矩阵完成复制动态方程求解和演化相图分析等
  • ¥20 关于DAC输出1.000V对分辨率和精度的要求
  • ¥20 想写一个文件管理器,加载全部子文件夹后,要一级一级返回
  • ¥15 华为超融合部署环境下RedHat虚拟机分区扩容问题
  • ¥15 哪位能做百度地图导航触点播报?
  • ¥15 请问GPT语言模型怎么训练?
  • ¥15 已知平面坐标系(非直角坐标系)内三个点的坐标,反求两坐标轴的夹角
  • ¥15 webots有问题,无响应