C++ 用C+列出类+;

C++ 用C+列出类+;,c++,list,class,linked-list,C++,List,Class,Linked List,我正在开发一个程序,该程序应该将文件的内容读入一个链表中,以便创建一个“hypercard堆栈”(我已经列出了具体细节) 我知道C++标准库中有一个列表类,但是由于我以前从未使用过标准库,所以我不知道如何使它与这个特殊的问题一起工作。 这里是我通过拼凑我遇到的在线教程中的一些片段,到目前为止我已经设法想出的代码 我的.h文件: //program6.h #include <iostream> #include <fstream> #include <string&g

我正在开发一个程序,该程序应该将文件的内容读入一个链表中,以便创建一个“hypercard堆栈”(我已经列出了具体细节)

我知道C++标准库中有一个列表类,但是由于我以前从未使用过标准库,所以我不知道如何使它与这个特殊的问题一起工作。 这里是我通过拼凑我遇到的在线教程中的一些片段,到目前为止我已经设法想出的代码

我的.h文件:

//program6.h
#include <iostream>
#include <fstream>
#include <string>
#include <list>
using namespace std;

class Node {
public:
    Node();
    Node(char code, int num, string data);
    Node(Node & node);
    ~Node();

    bool readFile();
    void setNext(Node* next);
    void print();

private:
    char Code;
    int Num;
    string Data;
    Node *Next;
};
更新 多亏了下面的答案,我才能够摆脱最初遇到的“未定义引用”错误,不过,下面是我现在运行程序时遇到的错误

terminate called after throwing an instance of 'St9bad_alloc'
  what():  St9bad_alloc
Aborted
另外,请记住,虽然我遇到了一个需要解决的错误,但这并不是这个问题的主要目的


我很抱歉,如果这是真的广泛,我真的不明白这一切,所以我真的不知道如何进一步缩小它。有人能帮我找出如何使用list类来解决这个问题吗?同样,程序的细节可以在我前面的文章中提供的链接中找到。

您需要在命令行上将这两个文件路径都指向gcc

[cs331129@cs ~]$ g++ -o prog6 program6test.cpp program6.cpp

请注意,您只需要将
.cpp
文件传递给编译器,因为它通过
#include
指令找到头文件。

既然您已经在所包含的一个.h文件中声明了
节点
类,为什么还要在.cpp文件中声明它?因为我不知道我在做什么。另外,您的
Node::Node(char-code,int-num,string-data)
构造函数正在将内容保存到局部变量而不是对象成员。那么我如何解决这个问题呢?通过像在其他构造函数中一样写入对象成员。也就是说,
code=等,而不是
字符代码=等。这消除了编译器错误,但是,现在当我运行它时,我得到错误“在抛出'St9bad_alloc'what():St9bad_alloc中止实例后终止调用”这是一个完全不同的问题。变量“data”可能有问题。试着在调试器中运行程序来确定问题。是的,我更新了原来的问题,包括了更多关于我实际要求的信息。我实际上没有调试器,我们的程序只是在Linux系统上测试,每次我使用的东西都不只是纯文本编辑器,而是写C++代码。它最终给我带来了更多的麻烦,因为使用的Linux编译器并不是最新的。
i 27 Mary had a little lamb
i 15 Today is a good day
i 35 Now is the time!
i 9 This lab is easy and fun
p
d 35
t
i 37 Better Now.
f
p
h
p
d 27
d 15
d 37
d 9
i 44 This should be it!
t
p
terminate called after throwing an instance of 'St9bad_alloc'
  what():  St9bad_alloc
Aborted
[cs331129@cs ~]$ g++ -o prog6 program6test.cpp program6.cpp