这个输出了部分乱码

谁学逆向工程 2010-06-13 10:01:25
#include<iostream>
using namespace std;

template<typename T1,typename T2>
class tem
{
public:
tem(T1 a,T2 b);
~tem();
void output();
T1 * h;
};


template<typename T1, typename T2>
tem<T1,T2 >::tem(T1 a, T2 b)
{
h=new T1 [b+1];
for(int i=0; i<b;i++)
h[i]=0;

for(int i=0; i<b;i++)
h[i]=a;
}

template<typename T1, typename T2>
tem<T1,T2>::~tem ()
{
delete [] h;
cout<<"-----析构-----";
}

template<typename T1,typename T2>
void tem<typename T1,typename T2>::output()
{
cout<<h;
}
void main()
{
{
int a=5;
char i ='A';
tem<char,int> b(i,a);
b.output ();
// b.~tem ();
}
int P;cin>>P;
}
...全文
58 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
taodm 2010-06-13
  • 打赏
  • 举报
回复
楼主代码里竟然还能有
// b.~tem ();
这东西存在?
  • 打赏
  • 举报
回复
h=new T1 [b+1];//==》h=new T1 
cout<<h;//==>cout<<h<<endl;
[b
cattycat 2010-06-13
  • 打赏
  • 举报
回复

for(int i=0; i<=b;i++)
h[i]=0;
这里应该是<=b,最后一个0来表示结束符。

zhibiao123 2010-06-13
  • 打赏
  • 举报
回复
楼主,首先你是没有将int型数据转化称 char型,所以 肯定会出现乱码,你可以用itoa转化成char型,还有,void tem<typename T1,typename T2>::output()是错的

64,682

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧