C++修改错误!

来源:百度知道 编辑:UC知道 时间:2024/05/26 12:15:48
#include<iostream>
using namespace std;

class GradeBook
{

public:
GradeBook();//建立一个GradeBook的构造函数用来将指针数组及数组初始化
GradeBook::GradeBook(int,int);
void setAmount( );//接收2个整数值第一个整数为学生人数第二个整数为需要录入成绩科目的数量
void setCourseName();
void print();
private:
int a;//该整数为学生的个数也就是记录成绩的二维数组的行!
int b;
char **subject;
};

GradeBook::GradeBook()//设置2个默认的值给构造函数使其函数初始化!
{
a=60;
b=6;
}
GradeBook::GradeBook(int arg0,int arg1)
{
this->a=arg0;
this->b=arg1;
}
void GradeBook::setAmount()//定义函数来设置数据成员的值
{
cout<<"Enter the number of the student:";
cin>>a;
cout<<"Enter the amount of subject:";
cin>>b;
}
//上面函数将录入学生人数和科目数目!
void GradeBook::setCourseName()
{

char **subject=new char*[b];
for(int i=0;i<b;i++)
{
cout<

问题出在了这里char **subject=new char*[b];
你重新定义了局部变量subject 覆盖了类的成员 因此数据成员subject并没有被分配内存 cout<<"sfsdfsa"<<subject[0]; 时候造成内存访问错误!

GradeBook::GradeBook(int,int);
void setAmount( );
太长了,看了以下这里好象有问题,在类内定义不用::
下面的我 没看