看看下面代码有问题不?非常简单的新手问题!!!

来源:百度知道 编辑:UC知道 时间:2024/09/21 06:52:42
实现友元操作的代码,书上原封不动的抄的,编译,连接,都是0 error 0 warning.一执行就出现debug error.不知道为什么.有没有高手指教一下debug error啥意思?怎么引起的,要怎么样才能消除呢?

我觉得代码本身没啥错吧?
晕忽忽,怎么没贴上来,下面是代码
#include <iostream.h>
#include <string.h>
class Boy;
class Girl{
char *name;
int age;
friend Boy;
public:
Girl(char *n,int a){
name=new char(strlen(n)+1);
strcpy(name,n);
age=a;
}
~Girl(){
delete name;}
};
class Boy{
char *name;
int age;
public:
Boy(char *pn, int a){
name=new char (strlen(pn)+1);
strcpy(name,pn);
age=a;
}
void Print(Girl &x);
~Boy(){
delete name;}
};
void Boy::Print(Girl &x){
cout<<"男孩名字是"<<name<<endl;
cout<<"女孩名字是"<<x.name<<endl;
}

void main(){
Boy a("suntai",25);
Girl b("xiongxin",26);
a.Print(b);
}

两个类中的语句name=new char(strlen(n)+1);
都改为name=new char[strlen(n)+1];
int *p=new int(n);意思是申请一个整型大小的空间并服初值为n,而int *p=new int[n];意思是申请n个整型空间
更改之后就可以运行通过了

代码??????????????///
我怎么什么都没看见啊??

代码在哪里啊???

=。=代码在哪里?

环境有没有设置好

#include <iostream>
#include <string>//去掉.h(只为了兼容C用)
using namespace std;
class Boy;
class Girl{
char* name;
int age;
friend Boy;
public:
Girl(char *n,int a){
name=new char(strlen(n)+1);
strcpy(name,n);
age=a;
}
~Girl(){
delete [] name;}//删除的是数组
};
class Boy{
char *name;
int age;
public:
Boy(char *pn, int a){
name=new char (strlen(pn)+1);
strcpy(name,pn);
age=a;
}
void Print(Girl &x);
~Boy(){
delete [] name;}
};
void Boy::Print(Girl &x){
cout<<"男孩名字是"<<name<<endl;
cout<<"女孩名字是"<<x.name<<endl;
}