c++中将创造的对象储存到数组中

比如定义了一个类为course,有着名字,想要把创造后的每一个对象储存到数组中,应该怎么做呢


class course {
public:
    void setname(string name)
    {
        this->name = name;
    }
    string  getname()
    {
        return name;
    }
private:
    string name;
};
int main()
{
        int course_number=0;
    cout << "请输入想要生成的课程数量:" << endl;
    cin >> course_number;
    course* course_all = (course*)malloc(course_number * sizeof(course));
    for (int i = 0; i < course_number; i++)
    {
        cout << "课程的名称为";
        cin >> course_name;
        course_all[i].setname(course_name);
    }
}

像这样写就会报错,无法读取字符串

img

img

#include <stdio.h>
#include <string>
#include <iostream>
using namespace std;


class course {
public:
    course* setname(string _name)
    {
        course *c=new course();
        c->name = _name;
        return c;
    }
    string  getname()
    {
        return name;
    }
private:
    string name;
};
int main()
{
    int course_number = 0;
    string course_name = "";
    cout << "请输入想要生成的课程数量:" << endl;
    cin >> course_number;
    course* course_all = (course*)malloc(course_number * sizeof(course));
    for (int i = 0; i < course_number; i++)
    {
        cout << "课程的名称为";
        cin >> course_name;
        course_all[i].setname(course_name);
    }
}