我试图将某些内容插入到链接列表中,但编译器告诉我,我无法从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)
功能的参数的情况下解决此问题?
答案 0 :(得分:0)
如何将const Class *转换为Class *?
选项1:
制作副本。
p->stud = new Student(student);
选项2:
使用const_cast
。
p->stud = const_cast<Student*>(&student);
仅在您仔细管理内存时才使用此选项。