【发布时间】:2021-04-01 14:15:54
【问题描述】:
您好,我来自 Java 背景,对 C++ 很陌生 在我的中级 Java 编程中,我从未遇到过声明某个对象的情况 该类主体中的类,现在正在研究 C++ 中的链表,这里是这段代码和几个 我遇到的其他地方指向该类/结构的指针在其主体中声明,即 Struct ListNode * next;在下面的代码中
private:
// Declare a structure for the list
structListNode{
float value;
structListNode*next;
};
ListNode*head; // List head pointer
public:
FloatList(void) { // Constructor
head = NULL;
}
~FloatList(void) { }; // Destructor
void appendNode(float);
void displayList(void);
void deleteNode(float);
};
或节点*下一个;在下面的这段代码中
class Node {
int data; // The value stored in node
Node* next; // The address of next node
}
我真的无法理解它的含义或进展如何,有人可以向我解释一下吗?
【问题讨论】:
-
您应该了解指针是什么以及它们是如何工作的。代码没有声明“该类主体内某个类的对象”。它声明了一个指向该类主体内某个类的对象的指针,这是不同的。 good book 可能会有所帮助。 (想象一下,指针基本上是一个地址。为什么将地址存储在类实例中会有任何问题?)
-
在 Java 中这相当于:
class Node { int data; Node next;}。这意味着next在 c++ 中引用(在 java 中)和指向(通过指针)到 Node 的实例 -
你了解链表的概念吗?你见过无数优秀的可视化吗?带有指向另一个
Node的指针的Node是该数据结构的标志。 -
我确实知道它不是类/结构体中的对象,但是当我在类体中创建类的指针时,内存中的情况如何?它是如何工作的?
-
@AliM “它是如何工作的?” — 这在很大程度上取决于您分配给该指针的内容。在你的情况下,只需谷歌“C++ 链表”。