每日打卡一小时(第二十六天)

发布时间 2023-05-16 20:45:36作者: 伐木工熊大

一.问题描述

请使用模板参数设计实现绝对值模板类Absolute,Absolute类功能要求成员函数getValue(void)const计算类数据的绝对值,类数据类型应能适应整型、浮点型、双精度型等各种类型,绝对值类型与类数据一样。

二.设计思路

注意类模板参数的设计格式,注意编写构造函数和成员函数的返回值类型,按要求完成即可

三.代码实现

#include <iostream>
using namespace std;
template<class T>
class Absolute
{
    private:
    T num;
    public:
    Absolute(T x):num(x){};
    T getValue(void)const;
};
template<class T>
T Absolute<T>::getValue(void)const
{
    return num<0? -num:num;
}
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;
}