【发布时间】:2020-10-18 22:18:22
【问题描述】:
这个类中SinglyLinkedList方法有什么用?
class SinglyLinkedList {
public:
int data;
SinglyLinkedList *next;
SinglyLinkedList (int data){
this->data=data;
this->next=nullptr;
}};
【问题讨论】:
-
你在问构造函数是做什么的吗?
-
不,为什么我们需要上面代码中的构造函数?
-
与任何其他代码相同——初始化新创建的类实例。
-
构造函数需要与类具有完全相同的名称(包括标点符号)。有构造函数的原因是:当你创建一个没有构造函数的类的对象时,它的成员的值只是随机值。但是您真正想要的是可预测的,因此您需要在创建对象时设置可预测的值 (
SinglyLinkedList s{data,NULL};),或者您需要有一个构造函数来为您执行此操作,这样您就不必记住这样做每次。 -
因为如果你不初始化
next指向nullptr的指针,遍历节点会调用Undefined Behavior,因为它不知道在哪里结束清单是。 (就像 C 字符串中的 nul-terminating 字符)
标签: class this singly-linked-list