Я пишу небольшую программу, которая вводит данные от пользователя. Ввод представляет собой целое число, для числа учеников, 2 двойных числа в качестве оценок и поле обучения, которое должно быть массивом символов максимального размера 20. Теперь, когда я пишу класс, я не совсем уверен как задать массив символов по умолчанию в конструкторе.Предоставление массива символов по умолчанию с конструктором в классе C++
Это то, что я написал с классом и конструктором.
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];
}
Это не работает, и я не смог найти решение для этого онлайн. Может ли кто-нибудь указать мне в правильном направлении, как дать массив символов значение по умолчанию в конструкторе?
Заранее благодарен!
EDIT: Замена fieldOfStudy[20] = field[20];
на memcpy(fieldOfStudy, field, sizeof(fieldOfStudy));
сделала трюк! Спасибо за помощь, ребята :)
Вы должны использовать 'символ []' ? Или вы можете использовать 'std :: string'? – CoryKramer
Просто подсказка: попробуйте использовать лучшие имена переменных. Я знаю, что вы знаете, для чего они используются, но люди, читающие его, понятия не имеют. –
Я буду помнить об этом. И да, это говорит, что я должен использовать char [], я не имел никаких проблем с этим использованием строки. – Birgir