#include "iostream.h"
#include "string.h"
#define N 5
class Student
{
private :
int Num;
char Name[20];
char Profession[40];
int Sorce;
public :
Student(int num,char *name,char *profession,int sorce);
Student();
void Register();
void ShowMe();
};
Student::Student(int num,char *name,char *profession,int sorce)
{
Num=num;
strcpy(Name,name);
strcpy(Profession,profession);
Sorce=sorce;
}
void Student::Register()
{
cout<<"请输入学生信息:"<<endl;
}
void Student::ShowMe()
{
cout<<Num<<" "<<Name<<" "<<Profession<<" "<<Sorce<<endl;
}
void main()
{
Student student1(1,"张三","软件",98);
Student st[N];
int num,i;
char name[20];
char profession[40];
int sorce;
cout<<"请输入学号,姓名,专业,分数"<<endl;
for(i=0;i<N;i++)
{
cin>>num>>name>>profession>>sorce;
st[i].Student(num,name,profession,sorce);
}
cout<<"学号\t姓名\t专业\t成绩\n";
for(i=0;i<N;i++)
{
st[i].ShowMe();
}
student1.ShowMe();
}
怎么改才能将构造函数的值输出,又能将st[N]的信息输出。
对象类数组不能这样做,你只能在类里在建一个成员函数,实现赋值,还有,你得无参构造函数缺少函数体。
修改后的程序如下:
#include<iostream>
#include<cstring>
#define N 5
using namespace std;
class Student
{
private :
int Num;
char Name[20];
char Profession[40];
int Sorce;
public :
Student(int num,char *name,char *profession,int sorce); //带参构造函数
void SetStudent(int num,char *name,char *profession,int sorce);
Student(){};//无参构造函数
void Register();
void ShowMe();
};
Student::Student(int num,char *name,char *profession,int sorce)
{
Num=num;
strcpy(Name,name);
strcpy(Profession,profession);
Sorce=sorce;
}
void Student::Register()
{
cout<<"请输入学生信息:"<<endl;
}
void Student::ShowMe()
{
cout<<Num<<" "<<Name<<" "<<Profession<<" "<<Sorce<<endl;
}
void Student::SetStudent(int num,char *name,char *profession,int sorce)
{
Num=num;
strcpy(Name,name);
strcpy(Profession,profession);
Sorce=sorce;
}
void main()
{
Student student1(1,"张三","软件",98);
Student st[N];
int num,i;
char name[20];
char profession[40];
int sorce;
cout<<"请输入学号,姓名,专业,分数"<<endl;
for(i=0;i<N;i++)
{
cin>>num>>name>>profession>>sorce;
st[i].SetStudent(num,name,profession,sorce);
}
cout<<"学号\t姓名\t专业\t成绩\n";
for(i=0;i<N;i++)
{
st[i].ShowMe();
}
student1.ShowMe();
}
结果如下:
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息