#include<iostream>#include<string>using namespace std;class Student{private:int age;char *name;public:Student(int m,char *n);Student();~Student();void SetMember(int m,char *n);int GetAge();char *GetName();};Student::Student(int m,char *n){age=m;if(n){name=new char[strlen(n)+1];strcpy(name,n);}}Student::Student(){age=0;name="unnamed";}Student::~Student(){cout<<"Destructor called."<<endl;delete []name;}int Student::GetAge(){return age;}char *Student::GetName(){return name;}void Student::SetMember(int m,char *n){age=m;if(n){name=new char[strlen(n)+1];strcpy(name,n);}else name=0;}int main(){Student stu[3]={Student(13,"wang")};stu[2].SetMember(12,"zhang");cout<<stu[0].GetAge()<<","<<stu[0].GetName()<<endl;cout<<stu[1].GetAge()<<","<<stu[1].GetName()<<endl;cout<<stu[2].GetAge()<<","<<stu[2].GetName()<<endl;return 0;}题目要求是:定义一个学生类 Student ,设计私有数据成员:年龄 int age; 姓名 char *name; 公有成员函数: 构造函数 带参数的构造函数 Student ( int m,char *n ) ; 不带参数的构造函数 Student ( ) ; 析构函数 ~ Student ( ) ; 释放由 name 申请的动态空间 改变数据成员值函数 void SetMember ( int m,char *n ) ;获取数据成员函数 int Getage ( ) ; char *Getname ( ) ; 在 main ( ) 中定义一个有 3 个元素的对象数组并分别初始化,然后输出对象数组的信息, main 函数的部分内容如下: int main ( ) { Student stu[3]={Student(13,“wang”);……} // 第一个元素调用带能构造函数初始化 // 第二、三个元素由无参构造函数初始化,默认年龄为 0 ,姓名为unnamed; //stu[2]. SetMember ( 12,"zhang“ ) ; // 修改第三个元素的数据成员值
添加回答
举报
0/150
提交
取消