我如何将 const Class* 转换为 Class*?

How would I convert a const Class* to a Class*?

我正在尝试向链表中插入一些内容,但编译器告诉我无法从 const Student* 转换为 Student*。 每个节点包含一个 Student *stud 和一个 Node *next。这是我到目前为止写的函数:

void LinkedList::putAtTail(const Student &student){
    Node *p = new Node();
    p->stud = &student; //this is where I have trouble
    p->next - NULL;

    //then insert `p` into the Linked List
}

编译器不想编译这个,给我 error: invalid conversion from ‘const Student*’ to ‘Student*’

如何在不更改 putAtTail(const Student &student) 函数参数的情况下解决这个问题?

How would I convert a const Class* to a Class*?

选项 1:

复制一份。

p->stud = new Student(student);

选项 2:

使用const_cast.

p->stud = const_cast<Student*>(&student);

只有在仔细管理内存时才使用此选项。