请使用“答题”菜单或使用VC6打开考生文件夹proj1下的工程proj1。程序中位于每个//ERROR************found************下的语句行有错,请加以改正。改正后程序的输出应该是:
Name:Smith Age:21 ID:99999 CourseNum:12 Record:970
注意:只能修改每个//ERROR************found************下的那一行,不要改动程序中的其他内容。
//源程序
#include<iostream>
using namespace std;
class StudentInfo
protected:
//ERROR************found************
char Name[];
int Age;
int ID;
int CourseNum;
float Record:
public:
//ERROR************found************
void StudentInfo(char*name, int age, int ID, int courseNum,float record);
//ERROR************found************
void~StudentInfo()delete[]Name;
float AverageRecord()
return Record/CourseNum:
void show() consL;
;
StudentInfo::StudentInfo(char*name, int age, int ID, int courseNum, float record)
Name=strdup(name);
Age=age;
this->ID=ID:
CourseNum=courseNum:
Record=record:void StudentInfo::show()const
cout<<"Name:"<<Name<<"Age:"<<<<"CourseNum:"<<CourseNum<<" Record:"<<Record<<endl;int main()
StudentInfo st("Smith",21,99999,12,970);
st.show();
return 0:
参考答案:A)char*A=Name;
B)StudentInfo(char术name,lnt age,int ID,int courseNum,float record);
C)~StudentInfo(){delete Name;}
解析:1)char Name[];定义数组时必须确定数组的大小。如果不能确定数组的大小,则使用字符指针代替字符数组。
2)构造函数不能有返回值和函数类型。
3)析构函数也不能有函数类型,同时析构函数要释放内存,删除数组Name。