我正在写一个小程序,需要用户输入。输入是一个整数,表示学生人数,2个双作为成绩的双倍数以及学习领域,该领域必须是最大为20的字符数组。
现在,在编写类时,我不太确定如何在构造函数中为字符数组提供默认值。
这是我用类和构造函数编写的。
class nemandi
{
public:
nemandi(int num, double g1, double g2, char field[]);
void birta();
friend bool operator <(nemandi& nem1, nemandi& nem2);
private:
int studentNumber;
double grade1;
double grade2;
double medaltal();
char fieldOfStudy[20];
};
nemandi::nemandi(int num, double g1, double g2, char field[])
{
studentNumber = num;
grade1 = g1;
grade2 = g2;
fieldOfStudy[20] = field[20];
}
这是行不通的,而且我还无法在线找到解决方案。谁能为我指出如何在构造函数中为char数组赋予默认值的正确方向?
提前致谢 !
编辑:用
fieldOfStudy[20] = field[20];
替换memcpy(fieldOfStudy, field, sizeof(fieldOfStudy));
达到了目的!感谢您的帮助:) 最佳答案
fieldOfStudy[20] = field[20];
您只是在从field到fieldOfStudy的位置20处分配了char。使用memcpy代替:
memcpy(fieldOfStudy, field, sizeof(fieldOfStudy));