高手们,看看下面的问题?
星之瀚海 2003-06-10 04:58:00 #pragma once
#include <string.h>
#include <iostream.h>
#include <iomanip.h>
class Children
{
char *Name;
int Age;
float Weight;
public:
char *getName(void){ return Name;}
int getAge(void){return Age;}
float getWeight(void){return Weight;}
void prData(void){cout<<Age<<" "<<Name;}
Children(void);
Children(int,float);
Children(char *,int=20,float=45.65);
~Children(void);
Children &operator=(Children &child);
};
Children::Children(void)
{
Name = new char[5];
strcpy(Name,"1234");
Age=0;
Weight=0;
}
Children::Children(int age,float weight)
{
Name = new char[5];
strcpy(Name,"1234");
Age=age;
Weight=weight;
//cout<<*Name;
}
Children::Children(char *name,int age,float weight)
{
Name =new char[strlen(name)+1];
strcpy(Name,name);
Age=age;
Weight=weight;
}
Children::~Children(void)
{
delete Name;
}
Children &Children::operator =(Children &child)
{
Name=new char[strlen(child.getName())+1];
strcpy(Name,child.getName());
Age = child.getAge();
Weight = child.getWeight();
return *this;
}
int main(int argc,char *argv[])
{
Children girl("12345678");
girl.prData();
Children boy=girl;
return 0;
}
上面程序编译正常,运行期最后释放boy.name时报告内存错误,难道是我重载的操作符函数没有写对?解决给分