是的,我知道这是一百个问题的重复,但我已经在这个问题上工作了好几个小时,但没有任何工作。
我想要做的就是在类定义中初始化一些私有变量。
结构如下:
#include <string>
using namespace std;
typedef string DataType;
class Slist {
public:
private:
// private data type: Node
struct Node {
DataType data;
Node *next;
};
// state variables:
Node *head, *tail, *cursor;
};
我正在初始化它们:
Slist::Slist (void) {
cursor -> data = 'n';
cursor -> next = new Node;
这给了我一个分段错误。我知道这意味着我正在尝试访问不存在的内存,但尽管这些是私有变量,我试图在Slist CONSTRUCTOR中访问它们,这当然可以访问它们。如果有人告诉我发生了什么,我将非常感激。
答案 0 :(得分:0)
您没有初始化或指定指向内存位置的指针。任何指针都需要有效的内存位置才能使用。
你可以做到
cursor = new Node;
在使用箭头操作符之前。