我正在写一个小程序,需要用户输入。输入是一个整数,表示学生人数,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));

07-26 03:32