【发布时间】:2021-11-29 14:24:00
【问题描述】:
我对 C++ 编程比较陌生,我正在为我的一门课程做一个复杂的项目。我需要知道我对函数 insertAfter 的定义是否按预期工作以及我是否正确使用它。
void SeatNode::insertAfter(SeatNode* node)
{
// insert this->SeatNode after node
this->next_node = node->next_node;
node->next_node = this->next_node;
}
void Compact::createSeatReservation(Passenger p)
{
SeatNode seat(p);
seat.insertAfter(this->driver_seat.getNextNode());
}
如果它按预期工作,Compact::createSeatReservation(Passenger p) 应该创建一个名为 seat 的 SeatNode 对象,并且它应该在一个名为 driver_seat 的 SeatNode 对象之后插入 seat。形成以driver_seat为头节点,seat为driver_seat之后的下一个节点的链表。正如我所说,我对 c++ 比较陌生,任何帮助将不胜感激。
【问题讨论】:
-
不,它没有。在你的脑海中通过它。考虑三个节点,您的
driver_seat节点、driver_seats 下一个节点和您新创建的节点。每个next指向哪里,应该指向哪里?
标签: c++ function object pointers