我创建的类的对象怎么报错呢?
#include<iostream.h>
#include<string>
using namespace std;
class student
{
char name[10];
int deg;
char level[7];
friend class process;
public:
student(char na[], int d)
{
strcpy(name,na);
deg = d;
}
};
class process
{
public:
void trans(student s[])
{
int nOff;
nOff = s->deg;
if (nOff > 89)
{
nOff = 1;
}
else
{
if (nOff > 79)
{
nOff = 2;
}
else
{
if (nOff > 69)
{
nOff = 3;
}
else
{
nOff = 4;
}
}
}
switch (nOff)
{
case 1:
strcpy(s->level,"优");
break;
case 2:
strcpy(s->level,"良");
break;
case 3:
strcpy(s->level,"中");
break;
case 4:
strcpy(s->level,"及格");
break;
default:
strcpy(s->level,"不及格");
break;
}
}
};
void main(void)
{
student test[5];
}
[解决办法]
student类没有默认构造函数
[解决办法]
加个默认构造函数就可以了,
student()
{
// 对成员的初始化
}
[解决办法]
你的student没有默认构造函数。student test[5];就相当于创建了5个student对象的数组,但是student没有默认构造函数,所以出错
[解决办法]
class student
{
char name[10];
int deg;
char level[7];
friend class process;
public:
student(char na[] = "", int d = 0)
{
strcpy(name,na);
deg = d;
}
};
[解决办法]
class student
{
char name[10];
int deg;
char level[7];
friend class process;
public:
<span style="color: #FF0000;">student(char na[] = "", int d = 0)
{
strcpy(name,na);
deg = d;
}</span>
};
[解决办法]
构造函数可以有多个,你main函数里student test[5];生成的对象都是调用无参的构造函数,而你没有 所以报错了。你在student类里面添加一个student(){}就ok了。