将对象添加到LinkedList C 中
Adding object into LinkedList C++
我无法弄清楚符号,与参考和指针混淆。我必须将学生指针放入LinkedList。我想我只是错了&或者 *。我在这里做什么:
int main(){
PointerClass *p = new PointerClass();
Student *s = new Student();
p->add(s);
return 0;
}
在add
上,我看到错误:
"学生&"类型的参考(不合格(不能初始化
add
上方定义为此
void PointerClass::add(Student& a) {
ll.AddNode(a);
}
其中 ll
是:
private:
LinkedList ll;
类LinkedList具有以下结构:
class LinkedList
{
private:
typedef struct node {
Student data;
node* next;
}* nodePtr;
nodePtr head;
nodePtr curr;
nodePtr temp;
}
void LinkedList::AddNode(Student& addData) {
nodePtr n = new node;
n->next = NULL;
n->data = addData;
if (head != NULL) {
curr = head;
while (curr->next != NULL) {
curr = curr->next;
}
curr->next = n;
}
else {
head = n;
}
}
您的功能PointerClass::add()
和LinkedList::addNode()
期望Student
作为参数,而不是Student*
。您有两个可以使其起作用的选择:
1(重构PointerClass::add()
和LinkedList::addNode()
接收和存储Student*
。这基本上将等同于用*
s替换&
s,并在将指针放入新的LinkedList::node
时删除该指针,或者将LinkedList::node::data
的类型更改为Student*
2(将Student
传递给PointerClass::add()
。这只是将s
与Student s = Student();
之类的内容宣布或将其传递给PointerClass::add()
。
相关文章:
- 什么时候调用组成单元对象的析构函数
- 对RValue对象调用的LValue ref限定成员函数
- CMake-按正确顺序将项目与C运行时对象文件链接
- 空基优化子对象的地址
- 将对象数组的引用传递给函数
- 你能重载对象变量名本身返回的内容吗
- C++使用整数的压缩数组初始化对象
- 找不到成员对象:没有名为get_event()的成员,也处理多态性和向量
- 将对象移动到std::shared_ptr
- 代理对象的常量正确性
- 提升 ASIO 无法识别计时器对象
- 将Ref对象作为类成员
- 将包含C样式数组的对象初始化为成员变量(C++)
- 如何返回一个类的两个对象相加的结果
- 使用std::函数映射对象方法
- 是否需要删除包含对象的"pair"?
- 将对象添加到LinkedList C 中
- 不允许抽象类类型的对象 "Vector<LinkedList<int>>"
- 编写扩展LinkedList的对象
- 用于存储泛型对象的c++ LinkedList节点