用C++编写一个student类,作用如下:
定义学生类student,类中包含学生的基本信息:学号、姓名、性别、年级等私有数据成员,还包含一个统计当前创建该对象个数的计数器count,student类中有多个构造函...
定义学生类student,类中包含学生的基本信息:学号、姓名、性别、年级等私有数据成员,还包含一个统计当前创建该对象个数的计数器count,student类中有多个构造函数:带默认参数的构造函数、带参数构造函数,以及显示学生信息、修改学生信息、输出计数器count等成员函数,建立对象(至少有一个是堆对象)并调用相应的成员函数。并定义一个友元函数用于输出学生基本信息。
展开
1个回答
展开全部
#include <iostream>
#include <string>
using namespace std;
class student{
public:
static int count;
student(){++count;}
student(string ID="",string name="",int sex=0,int grade=0):
m_ID(ID),m_name(name),m_sex(sex),m_grade(grade){++count;}
~student(){--count;}
void getData(){
cout<<m_ID<<' '<<m_name<<' ';
if(m_sex==1) cout<<"男";
if(m_sex==2) cout<<"女";
cout<<' '<<m_grade<<"年级"<<endl;
}
void setData(string ID="",string name="",int sex=0,
int grade=0){
if(ID!="") m_ID=ID;
if(name!="") m_name=name;
if(sex!=0) m_sex=sex;
if(grade!=0) m_grade=grade;
}
void showCount(){
cout<<"计数值:"<<count<<endl;
}
friend void showData(student& stu);
private:
string m_ID;
string m_name;
int m_sex;
int m_grade;
};
void showData(student& stu){
cout<<stu.m_ID<<' '<<stu.m_name<<' ';
if(stu.m_sex==1) cout<<"男";
if(stu.m_sex==2) cout<<"女";
cout<<' '<<stu.m_grade<<"年级"<<endl;
}
int student::count=0;
int main(){
student stu1("001","张三",1,4);
stu1.getData();
cout<<"修改学生信息"<<endl;
stu1.setData("002");
stu1.getData();
stu1.showCount();
cout<<"新建堆中的对象"<<endl;
student* stu2=new student("003","李四",2,5);
stu2->getData();
stu2->showCount();
delete stu2;
cout<<"删除了一条"<<endl;
stu1.showCount();
cout<<"调用友元函数"<<endl;
showData(stu1);
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询