C++ C++;需要帮助访问链接列表中的值吗 类节点{ 公众: Node(); void setNext(节点*); 私人: 作废*项; 节点*下一步; }; void节点::setNext(节点*n) { next=n; } 班级名单{ 公众:

C++ C++;需要帮助访问链接列表中的值吗 类节点{ 公众: Node(); void setNext(节点*); 私人: 作废*项; 节点*下一步; }; void节点::setNext(节点*n) { next=n; } 班级名单{ 公众: ,c++,list,segmentation-fault,C++,List,Segmentation Fault,C++;需要帮助访问链接列表中的值吗 类节点{ 公众: Node(); void setNext(节点*); 私人: 作废*项; 节点*下一步; }; void节点::setNext(节点*n) { next=n; } 班级名单{ 公众: List(); 无效先添加(无效*); 无效重置(); void*getCurItem(); 私人: 节点*头; 节点*电流; }; 作废列表::addFirst(作废*obj) { 节点*新节点=新节点(obj); 新建节点->设置下一步(头

C++;需要帮助访问链接列表中的值吗
类节点{
公众:
Node();
void setNext(节点*);
私人:
作废*项;
节点*下一步;
};
void节点::setNext(节点*n)
{
next=n;
}
班级名单{
公众:
List();
无效先添加(无效*);
无效重置();
void*getCurItem();
私人:
节点*头;
节点*电流;
};
作废列表::addFirst(作废*obj)
{
节点*新节点=新节点(obj);
新建节点->设置下一步(头部);
头=新节点;
}
无效列表::重置()
{
电流=水头;
}
void*List::getCurItem()
{
返回当前->获取项目();
}
多项式::多项式(标准::ifstream&input){
List*polyCo=新列表();
List*polyEx=新列表();
bool exit=false;
双系数=0;
int指数=0;
而(!exit&&input.good()){
输入>>系数;
如果(系数!=-9999.99){
输入>>指数;

这个
多项式
类与编写多项式类无关,但与链表有关。为什么你需要
多项式
类中的
列表*
,而你只需要
列表
?为什么
列表
不能安全地复制d可转让,即遵循“第3条规则”?列表用于保存多项式的不同程度的值。因此,一个列表以升序表示系数,而另一个列表表示指数。我可能不需要在这个赋值中使用列表,除非它是赋值的一个规定。另外,我不理解你关于它是安全的观点可复制和可分配。您的
多项式
类本身应该有
列表
成员(而不是指针)。此外,您的
多项式
构造函数存在内存泄漏,因为您使用的指针是本地的,您分配内存并分配给它们,然后函数返回,而不会取消分配或将这些指针存储在任何位置以备日后删除。但这与此无关--您应该在s中测试
列表
类mall
main
程序,该程序调用
列表
函数,以确保它们在您开始在“实际”工作中使用之前能够正常工作。
class Node {
public:
    Node();
    void setNext(Node*);

private:
    void* item;
    Node* next;
};

void Node::setNext(Node* n)
{
    next = n;
}

class List {
public:
    List();
    void addFirst(void*);
    void reset();
    void* getCurItem();

private:
    Node* head;
    Node* current;
};

void List::addFirst(void* obj)
{
   Node *newNode = new Node(obj);
   newNode->setNext(head);
   head = newNode;
}

void List::reset()
{
   current = head;
}

void* List::getCurItem()
{
    return current->getItem();
}


Polynomial::Polynomial(std::ifstream& input){
    List *polyCo = new List();
    List *polyEx = new List();

    bool exit = false;
    double coefficient=0;
    int exponent=0;

    while(!exit && input.good()){

    input >> coefficient;

            if(coefficient != -9999.99){

            input >> exponent;
            cout << "Exponent before: " << exponent << endl;
            cout << "Coefficient before: " << coefficient << endl;
            int *ExPtr =  &exponent;
            double *CoPtr  =  &coefficient;

            cout << "Exponent: " << *(ExPtr) << endl;
            cout << "Coefficient: " << *(CoPtr) << endl;
            polyCo->addFirst(ExPtr);
            polyEx->addFirst(CoPtr);
            cout << polyCo->getCurItem() << endl; //SEG FAULT
            }
   }

  polyEx->reset();
  polyCo->reset();

}