编程题3_1对象组初始化.docVIP

  • 6
  • 0
  • 约1.72千字
  • 约 5页
  • 2016-09-29 发布于贵州
  • 举报
编程题3_1对象组初始化

名称 编程题1:对象数组初始化 备注 描述 定义一个学生类 Student ,设计私有数据成员: 年龄 int age; 姓名 char *name; 公有成员函数: 构造函数 带参数的构造函数 Student(int m,char *n) ; 不带参数的构造函数 Student ( ?) ; 析构函数 ~ Student (? ) ; 释放由 name 申请的动态空间 改变数据成员值函数 void Set(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); // 修改第三个元素的数据成员值 ………. // 输出部分 return 0; } 13,wang 0,unnamed 12,zhang 只有一组测试用例,且”测试输入”这要栏为空 参考源程序代码 #includeiostream #includestring using namespace std; class Student { 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; name=new char[strlen(n)+1]; strcpy(name,n); } Student::Student( ) { age=0; name=new char[8]; strcpy(name,unnamed); } Student::~Student( ) { delete []name; } void Student:: SetMember (int m,char *n) { age=m; if (name) delete []name; name=new char[strlen(n)+1]; strcpy(name,n); } int Student::Getage( ) { return age; } char* Student::Getname( ) { return name; } int main( ) { Student stu[3]={Student(13,wang)} ; //第一个元素用带参构造函数初始化 stu[2].SetMember(12,zhang); //修改第三个元素的数据成员值 coutstu[0].Getage( ),stu[0].Getname( )\n; coutstu[1].Getage( ),stu[1].Getname( )\n; coutstu[2].Getage( ),stu[2].Getname( )\n; //这三句可改用一个循环 return 0; } 参考源代码仅供老师参考,不要添加到系统中 允许的编程语言: 选g++3.3, 名称和描述两项请将文档第二列内容对应贴入系统中 测试用例请各位自己添加,题目的最后已有描述,每个题目也说明了要给几组测试用例 其他选项可以自行设定,例如开启时间,结束时间,等等,需要大家逐步熟悉

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档