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

时间:2015-05-16 21:30:17

标签: c++ linked-list const

我试图将某些内容插入到链接列表中,但编译器告诉我,我无法从const Student*转换为Student*。 每个节点都包含Student *studNode *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)功能的参数的情况下解决此问题?

1 个答案:

答案 0 :(得分:0)

  

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

选项1:

制作副本。

p->stud = new Student(student);

选项2:

使用const_cast

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

仅在您仔细管理内存时才使用此选项。