
我写的c++程序有错误,一执行就fgg(程序名).exe已停止工作,帮帮忙,看一下哪里写错误,说一下原因,谢谢
#include<iostream>usingnamespacestd;template<classT>classLinkList{public:LinkList();L...
#include<iostream>using namespace std;
template <class T>
class LinkList{
public:
LinkList();
LinkList<T> *next;
int data;
LinkList<T> *first;
void show();};
template <class T>
LinkList<T>::LinkList()
{cout<<"fg";
}
template <class T>
void LinkList<T>::show()
{LinkList *first=new LinkList<T>;
LinkList *next=new LinkList<T>;
LinkList *h=new LinkList<T>;
h=first->next;
h->data=3;
cout<<h->data;}
void main()
{ LinkList<int> a;
a.show();} 展开
template <class T>
class LinkList{
public:
LinkList();
LinkList<T> *next;
int data;
LinkList<T> *first;
void show();};
template <class T>
LinkList<T>::LinkList()
{cout<<"fg";
}
template <class T>
void LinkList<T>::show()
{LinkList *first=new LinkList<T>;
LinkList *next=new LinkList<T>;
LinkList *h=new LinkList<T>;
h=first->next;
h->data=3;
cout<<h->data;}
void main()
{ LinkList<int> a;
a.show();} 展开
展开全部
在你的show函数中
LinkList *first=new LinkList<T>;
LinkList *next=new LinkList<T>;
LinkList *h=new LinkList<T>;
h=first->next;
first->next中的地址是不明确的,此时的h并不指向你新分配的内存,很可能指到不能访问的区域,所以会停止工作。
LinkList *first=new LinkList<T>;
LinkList *next=new LinkList<T>;
LinkList *h=new LinkList<T>;
h=first->next;
first->next中的地址是不明确的,此时的h并不指向你新分配的内存,很可能指到不能访问的区域,所以会停止工作。
追问
如果把next放到另一个类class里面变成class *next; 在LinkList 类里写class *first
此时h=first->next,为什么就可以了
追答
next是在另一个类中的,first应给只能访问到first,不会访问到next的吧
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询