c++ 定制类模板成员函数问题。请问下面的代码是咋回事啊?哪里出问题了求指点。
//定制类模板成员函数classClass_template_DZ_function{public:Class_template_DZ_function(int,int,...
//定制类模板成员函数
class Class_template_DZ_function
{
public:
Class_template_DZ_function(int,int,int);
friend ostream & operator <<(ostream &,const Class_template_DZ_function);
void display_Class_template_DZ_function();
private:
int year,month,day;
};
template<typename T>
class Class_template_DZ_function2
{
public:
Class_template_DZ_function2(T);
void display_Class_template_DZ_function2();
private:
T t;
};
//成员函数定义
Class_template_DZ_function::Class_template_DZ_function(int y,int m,int d):year(y),month(m),day(d)
{
cout<<"class Class_template_DZ_function 构造函数:"<<'\n';
}
void Class_template_DZ_function::display_Class_template_DZ_function()
{
cout<<"year="<<year<<' '<<"month="<<month<<' '<<"day="<<day<<'\n';
}
//友元函数定义
ostream & operator <<(ostream & xx,const Class_template_DZ_function dx)
{
xx<<"dx.year="<<dx.year<<' '<<"dx.month="<<dx.month<<' '<<"dx.day="<<dx.day<<'\n';
return xx;
}
template<typename T>
Class_template_DZ_function2<T>::Class_template_DZ_function2(T dx):t(dx)
{
cout<<"class Class_template_DZ_function 构造函数"<<'\n';
}
template<typename T>
void Class_template_DZ_function2<T>::display_Class_template_DZ_function2()
{
cout<<"t="<<t<<'\n';
}
//这不是模板特化这是定制类模板成员函数
//template<typename T> 不能写出来
template<>
void Class_template_DZ_function2<Class_template_DZ_function>::display_Class_template_DZ_function2()
{
cout<<"t="<<t<<'\n';
} 展开
class Class_template_DZ_function
{
public:
Class_template_DZ_function(int,int,int);
friend ostream & operator <<(ostream &,const Class_template_DZ_function);
void display_Class_template_DZ_function();
private:
int year,month,day;
};
template<typename T>
class Class_template_DZ_function2
{
public:
Class_template_DZ_function2(T);
void display_Class_template_DZ_function2();
private:
T t;
};
//成员函数定义
Class_template_DZ_function::Class_template_DZ_function(int y,int m,int d):year(y),month(m),day(d)
{
cout<<"class Class_template_DZ_function 构造函数:"<<'\n';
}
void Class_template_DZ_function::display_Class_template_DZ_function()
{
cout<<"year="<<year<<' '<<"month="<<month<<' '<<"day="<<day<<'\n';
}
//友元函数定义
ostream & operator <<(ostream & xx,const Class_template_DZ_function dx)
{
xx<<"dx.year="<<dx.year<<' '<<"dx.month="<<dx.month<<' '<<"dx.day="<<dx.day<<'\n';
return xx;
}
template<typename T>
Class_template_DZ_function2<T>::Class_template_DZ_function2(T dx):t(dx)
{
cout<<"class Class_template_DZ_function 构造函数"<<'\n';
}
template<typename T>
void Class_template_DZ_function2<T>::display_Class_template_DZ_function2()
{
cout<<"t="<<t<<'\n';
}
//这不是模板特化这是定制类模板成员函数
//template<typename T> 不能写出来
template<>
void Class_template_DZ_function2<Class_template_DZ_function>::display_Class_template_DZ_function2()
{
cout<<"t="<<t<<'\n';
} 展开
1个回答
展开全部
template<>
void Class_template_DZ_function2<Class_template_DZ_function>::display_Class_template_DZ_function2()
{
cout<<"t="<<t<<'\n';
}
把这个改为
template<T>
void Class_template_DZ_function2<T>::display_Class_template_DZ_function2()
{
cout<<"t="<<t<<'\n';
}
void Class_template_DZ_function2<Class_template_DZ_function>::display_Class_template_DZ_function2()
{
cout<<"t="<<t<<'\n';
}
把这个改为
template<T>
void Class_template_DZ_function2<T>::display_Class_template_DZ_function2()
{
cout<<"t="<<t<<'\n';
}
更多追问追答
追问
为何?为什么不是template呢?求教!
改了更不对,无法识别T,是的。
追答
不好意思,写错了,是template
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询