Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/390.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 分段故障(堆芯倾倒)问题c++;:动态存储器 模板 void SimpleList::in_node_l(void){ 节点*鳍; fin=新节点; (*last.next=fin; 最后=鳍; 大小++; }_C++ - Fatal编程技术网

C++ 分段故障(堆芯倾倒)问题c++;:动态存储器 模板 void SimpleList::in_node_l(void){ 节点*鳍; fin=新节点; (*last.next=fin; 最后=鳍; 大小++; }

C++ 分段故障(堆芯倾倒)问题c++;:动态存储器 模板 void SimpleList::in_node_l(void){ 节点*鳍; fin=新节点; (*last.next=fin; 最后=鳍; 大小++; },c++,C++,当函数push调用in_node_l成员函数时,我得到分段错误(核心转储)错误 template<class T> void SimpleList<T>::in_node_l(void){ Node* fin; fin=new Node; (*last).next=fin; last=fin; size++; } 模板 void stack::push(T var){ Simp

当函数push调用in_node_l成员函数时,我得到分段错误(核心转储)错误

 template<class T>
   void SimpleList<T>::in_node_l(void){
       Node* fin;
       fin=new Node;
       (*last).next=fin;
       last=fin;        
       size++;
}
模板
void stack::push(T var){
SimpleList::in_node_l();
(*(this->last)).data=var;
位置++;
返回;
} 
堆栈是一个派生类:

 template<class T>
   void stack<T>::push(T var){
       SimpleList<T>::in_node_l();
       (*(this->last)).data=var;
       position++;
       return;
  } 
类堆栈:公共SimpleList
节点被声明为

    class stack : public SimpleList<T>
模板
结构SimpleList::节点{
T数据;
节点*下一步;
};
但是,如果我在main中调用\u node\u l,我不会得到任何错误

类堆栈的构造函数是:

template<class T>
struct SimpleList<T>::Node{
  T data;
  Node* next;
 };
模板
堆栈::堆栈(整数s,字符串n)
:简单列表(s、n)
{
位置=1;
}
SimpleList的构造函数由

template<class T>

stack<T>::stack(int s,string n)
:SimpleList<T>(s,n)
{
  position=1;
}
模板
SimpleList::SimpleList(int s,string n){
int i;
//名称=输入名称
节点*prev,*当前;
尺寸=s;
name=n;
如果(s==1){
当前=新节点;
第一个=电流;
last=当前值;

cout
(*last).next=fin
--您可以简单地将其编写为
last->next=fin;
在尝试使用模板类之前,您是否编写了该类的非模板版本?我猜
last
未正确初始化。如果没有模板,很难判断会出现什么问题。您的
last
定义在哪里?
SimpleList::in_node_l();
将赋值给全局变量
last
。这与
This->last
无关。
template<class T>
SimpleList<T>::SimpleList(int s,string n){
int i;
//name= input name
Node *prev,*current;
size=s;
name=n;
if(s==1){
    current=new Node;
    first=current;
    last=current;
    cout<<"SIMPLELIST CONSTRUCTUR"<<endl;
}
else{
    for (i=1;i<s;i++){
        current=new Node;
        if(i==1){
            first=current;
        }
        else{
            (*prev).next=current;
            if(i==s-1){
                last=current;
                if(last=(*prev).next){
                    cout<<"SIMPLELIST CONSTRUCTUR2"<<endl;
                }       
            }
        }
        prev=current;
    }
}