首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

小弟我创建的类的对象如何报错呢

2013-04-09 
我创建的类的对象怎么报错呢?#includeiostream.h#includestringusing namespace stdclass student{ch

我创建的类的对象怎么报错呢?

#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了。

热点排行