设为首页收藏本站

新微赢技术网

 找回密码
 注册
搜索
热搜: 回贴
查看: 1524|回复: 8
打印 上一主题 下一主题

[求助]肯定是有关稀构函数的调试

[复制链接]
跳转到指定楼层
1#
发表于 2009-11-3 04:00:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
程序如下:
#include<iostream.h>
#include<string.h>
class pica
{
public:
pica()
{
mz=new char[100];
zl=0;
}
pica(char *p,int z):zl(z)
{
strcpy(mz,p);
}
~pica()
{
delete []mz;
}
pica(const pica &other)
{
mz=new char[strlen(other.mz)+1];
strcpy(mz,other.mz);
zl=other.zl;
}
pica& operator =(const pica &other)
{
mz=new char[strlen(other.mz)+1];
strcpy(mz,other.mz);
zl=other.zl;
return *this;
}
friend ostream& operator <<(ostream &out,const pica &other)
{
out<<other.mz;
out<<other.zl;
return out;
}
friend istream& operator >>(istream &in,pica &other)
{
in>>other.mz;
in>>other.zl;
return in;
}
private:
char *mz;
int zl;
};
void main()
{
int b;
cout<<"请输入要查询几辆车"<<endl;
cin>>b;
pica* gaga=new pica[b];
for(int i=0;i<b;i++)
{
char *p=NULL;
p=new char[100];
cout<<"输入生产商"<<endl;
cin>>p;
cout<<"输入制造年份"<<endl;
int m;
cin>>m;
pica a(p,m);
gaga[i]=a;
}
for(int j=0;j<b;j++)
{
cout<<gaga[j]<<endl;
}
delete []gaga;
}
为什么运行事出错啊 一直找不到原因 我合计是NEW 和DELETE的问题 但是看不出来 希望大家指点指点吧
2#
发表于 2009-11-3 04:00:19 | 只看该作者
以下是引用heliujin在2006-7-28 9:03:03的发言:

程序如下:
#include<iostream.h>
#include<string.h>
class pica
{
public:
pica()
{
mz=new char[100];
zl=0;
}
pica(char *p,int z):zl(z)
{
mz=new char[zl];
strcpy(mz,p);
}
~pica()
{
delete []mz;
}
pica(const pica &other)
{
mz=new char[strlen(other.mz)+1];
strcpy(mz,other.mz);
zl=other.zl;
}
pica& operator =(const pica &other)
{
mz=new char[strlen(other.mz)+1];
strcpy(mz,other.mz);
zl=other.zl;
return *this;
}
friend ostream& operator <<(ostream &out,const pica &other)
{
out<<other.mz;
out<<other.zl;
return out;
}
friend istream& operator >>(istream &in,pica &other)
{
in>>other.mz;
in>>other.zl;
return in;
}
private:
char *mz;
int zl;
};
void main()
{
int b;
cout<<"请输入要查询几辆车"<<endl;
cin>>b;
pica* gaga=new pica[b];
for(int i=0;i<b;i++)
{
char *p=NULL;
p=new char[100];
cout<<"输入生产商"<<endl;
cin>>p;
cout<<"输入制造年份"<<endl;
int m;
cin>>m;
pica a(p,m);
gaga[i]=a;
delete p;
}
for(int j=0;j<b;j++)
{
cout<<gaga[j]<<endl;
}
delete []gaga;
}
回复 支持 反对

使用道具 举报

3#
发表于 2009-11-3 04:00:20 | 只看该作者
pica(char *p,int z):zl(z)
{
strcpy(mz,p);
}
MZ没空间,这里是0
非法访问
加#include<string.h>
mz=new(strlen(p)+1);
回复 支持 反对

使用道具 举报

4#
发表于 2009-11-3 04:00:21 | 只看该作者
还有楼上的delete
WFPB,INT 与 CHAR* 这里没关系吧
回复 支持 反对

使用道具 举报

5#
发表于 2009-11-3 04:00:22 | 只看该作者
以下是引用song4在2006-7-28 12:27:20的发言:

还有楼上的delete
WFPB,INT 与 CHAR* 这里没关系吧
song4,呵呵,你也来了啊,没看明白你这句的意思~!
回复 支持 反对

使用道具 举报

6#
发表于 2009-11-3 04:00:23 | 只看该作者
char *mz;
int zl;
这里zl好象与mz没关系
pica(char *p,int z):zl(z)
{
mz=new char[zl];
strcpy(mz,p);
}
回复 支持 反对

使用道具 举报

7#
发表于 2009-11-3 04:00:25 | 只看该作者
谢谢大家了 (zl和mz确实没关系)
回复 支持 反对

使用道具 举报

8#
发表于 2009-11-3 04:00:26 | 只看该作者
哦。搞昏了,呵呵
pica(char *p,int z):zl(z)
    {
        mz=new char[strlen(p)+1];
        strcpy(mz,p);
    }
回复 支持 反对

使用道具 举报

9#
发表于 2009-11-3 04:00:30 | 只看该作者
额!好长的程序!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

申请友链|小黑屋|最新主题|手机版|新微赢技术网 ( 苏ICP备08020429号 )  

GMT+8, 2024-11-18 20:30 , Processed in 0.122927 second(s), 10 queries , Gzip On, Memcache On.

Powered by xuexi

© 2001-2013 HaiAn.Com.Cn Inc. 寰耽

快速回复 返回顶部 返回列表