vs2017编写模板类出现以下错误时:没有与参数列表匹配的构造函数……

举报
小小谢先生 发表于 2022/04/16 01:52:55 2022/04/16
【摘要】 程序源码: #include<iostream> using namespace std; template <typename T1=int,typename T2=double> class HoldsPair { private: T1 Value1; T2 Value2; public: Hol...

程序源码:

#include<iostream>
using namespace std;

template <typename T1=int,typename T2=double>
class HoldsPair
{
private:
	T1 Value1;
	T2 Value2;
public:
	HoldsPair(const T1& value1, const T2& value2)
	{
		Value1 = value1;
		Value2 = value2;
	};
	const T1 & GetFirstvalue() const
	{
		return Value1;
	};
	const T2& GetSecondvalue() const
	{
		return Value2;
	};
};
int main()
{
	HoldsPair<> mIntFloatPair(300, 10.09);
	HoldsPair<short,char*> mshortstringPair(25, "learn template,love c++");
	cout << "the first object conntains-" << endl;
	cout << "Value 1:" << mIntFloatPair.GetFirstvalue() << endl;
	cout << "Value 2:" << mIntFloatPair.GetSecondvalue() << endl;

	cout << "the second object contains-:" << endl;
	cout << "Value 1:" << mshortstringPair.GetFirstvalue() << endl;
	cout << "Value 2:" << mshortstringPair.GetSecondvalue() << endl;
	return 0;
}

出现错误的原因是这一行:HoldsPair<short,char*> mshortstringPair(25, "learn template,love c++");

系统提示:没有与参数列表匹配的构造函数HoldsPair<T1,T2>::HoldsPair[其中T1=short,T2=char*]实例

把<short,char*>改成<short,const char*>就可以编译成功

文章来源: blog.csdn.net,作者:小小谢先生,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/xiewenrui1996/article/details/91127773

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。