Я новичок в программировании ООП, и мне нужна помощь с домашней работой.
Мне нужно ввести char * с помощью cin >>, но когда я инициализировал char * как NULL, он выходит из строя и выдает мне исключение «_Str was nullptr», что я могу сделать, чтобы решить эту проблему?
Я использую класс с защищенными членами, я пытался перейти на общедоступный, но это не помогло.
Как я уже сказал, я новичок в этом, поэтому извините, если я не объяснил должным образом.
В приведенном ниже коде «Книга А» работает правильно.
class Book
{
protected:
char* title;
char* firstName;
char* lastName;
char* company;
int pages;
float price;
}
мой параметризованный конструктор выглядит так
Book(const char* title, const char* firstName, const char* lastName, const char* company, int pages, float price)
{
this->title = new char[strlen(title) + 1];
strcpy(this->title, title);
this->fistName = new char[strlen(firstName) + 1];
strcpy(this->firstName, firstName);
this->lastName = new char[strlen(lastName) + 1];
strcpy(this->lastName, lastName);
this->company = new char[strlen(company) + 1];
strcpy(this->company, company);
this->pages = pages;
this->price = price;
}
int main()
{
Book a("TESTtitle", "TESTfirstName", "TESTlastName", "TESTcompany", 365, 50);
a.print();
Book c;
char* title=NULL;
char* firstName=NULL;
char* lastName=NULL;
char* company=NULL;
int pages;
float price;
cin >> title;
cin >> firstName;
cin >> lastName;
cin >> company;
cin >> pages;
cin >> price;
}