对象数组要不就不用构造函数(系统默认自己创建一个),要么就建立一个带默认值的缺省的构造函数
#include<iostream>
#include<string>
#include<cstdlib>
const int N=100;
using namespace std;
class date{
#include<string>
#include<cstdlib>
const int N=100;
using namespace std;
class date{
public:
int year;
int month;
int day;
};
class student:public date
{
char*name;
int sex;
date x;
long phone;
public:
student();
student(char*p,int s,int y,int m,int d,long h);
~student();
student(const student&p);
void input();
void show();
};
student::student()
{
char*name="no name";
int sex=0;
x.day=0;
x.month=0;
x.year=0;
phone=0;
};
student::student(char*p,int s,int y,int m,int d,long h)
{
name=new char[strlen(p)+1];
strcpy(name,p);
sex=s;
day=d;
year=m;
month=y;
phone=h;
}
student::~student()
{
cout<<"it has been destoried";
delete []name;
name=NULL;
}
student::student(const student&p)
{
name=new char[strlen(p.name)+1];
strcpy(name,p.name);
sex=p.sex;
phone=p.phone;
}
void student::input()
{
char*p;
int s,h;
int y,m,d;
cout<<"请输入姓名:"<<endl;
cin>>p;
name=new char[strlen(p)+1];
strcpy(name,p);
cout<<"请输入性别(0代表女性,1代表女性)"<<endl;
cin>>s;
sex=s;
cout<<"请输入出生日期:"<<endl;
cin>>y>>m>>d;
day=d;
year=y;
month=m;
cout<<"请输入联系电话:"<<endl;
cin>>h;
phone=h;
}
void student::show()
{
cout<<name<<endl;
cout<<year<<"-"<<month<<"-"<<day<<endl;
cout<<sex<<endl;
cout<<phone<<endl;
}
int main()
{
student stu[N];
int i,j;
cin>>j;
if(j>100)
{
cout<<"it's over";
abort();
}
for(i=0;i<j;i++)
{
stu[i].input();
stu[i].show();
int year;
int month;
int day;
};
class student:public date
{
char*name;
int sex;
date x;
long phone;
public:
student();
student(char*p,int s,int y,int m,int d,long h);
~student();
student(const student&p);
void input();
void show();
};
student::student()
{
char*name="no name";
int sex=0;
x.day=0;
x.month=0;
x.year=0;
phone=0;
};
student::student(char*p,int s,int y,int m,int d,long h)
{
name=new char[strlen(p)+1];
strcpy(name,p);
sex=s;
day=d;
year=m;
month=y;
phone=h;
}
student::~student()
{
cout<<"it has been destoried";
delete []name;
name=NULL;
}
student::student(const student&p)
{
name=new char[strlen(p.name)+1];
strcpy(name,p.name);
sex=p.sex;
phone=p.phone;
}
void student::input()
{
char*p;
int s,h;
int y,m,d;
cout<<"请输入姓名:"<<endl;
cin>>p;
name=new char[strlen(p)+1];
strcpy(name,p);
cout<<"请输入性别(0代表女性,1代表女性)"<<endl;
cin>>s;
sex=s;
cout<<"请输入出生日期:"<<endl;
cin>>y>>m>>d;
day=d;
year=y;
month=m;
cout<<"请输入联系电话:"<<endl;
cin>>h;
phone=h;
}
void student::show()
{
cout<<name<<endl;
cout<<year<<"-"<<month<<"-"<<day<<endl;
cout<<sex<<endl;
cout<<phone<<endl;
}
int main()
{
student stu[N];
int i,j;
cin>>j;
if(j>100)
{
cout<<"it's over";
abort();
}
for(i=0;i<j;i++)
{
stu[i].input();
stu[i].show();
}
return 0;
}
return 0;
}