帮我看看这个C++程序,哪里错了
来源:百度知道 编辑:UC知道 时间:2024/09/12 16:00:50
#include<iostream.h>
//结构定义
struct stock
{
char stockID[6];
char stockName[20];
float buyPrice;
float sellPrice;
float dealPrice;
struct stock *next;
};
//节点类定义
class NODE
{
public :
struct stock * cursite;
struct stock * headnode;
NODE();
void setNodeValue(struct stock *temp);
void insertFront();
void showNode();
};
//节点类构造函数
NODE::NODE()
{
headnode= new struct stock;
headnode->next=NULL;
cursite=headnode->next;
}
//设置 (节点)股票的数据
void NODE::setNodeValue(struct stock *temp)
{
void main();
cursite=headnode->next;
if(cursite==NULL)
{
cout<<"当前链表为空"<<endl;
//问题~~~~~无论运行多少次节点插入,表显示都为空表
}
cout<<"stockID is a char[6] value=";
cin>>temp->stockID;
//结构定义
struct stock
{
char stockID[6];
char stockName[20];
float buyPrice;
float sellPrice;
float dealPrice;
struct stock *next;
};
//节点类定义
class NODE
{
public :
struct stock * cursite;
struct stock * headnode;
NODE();
void setNodeValue(struct stock *temp);
void insertFront();
void showNode();
};
//节点类构造函数
NODE::NODE()
{
headnode= new struct stock;
headnode->next=NULL;
cursite=headnode->next;
}
//设置 (节点)股票的数据
void NODE::setNodeValue(struct stock *temp)
{
void main();
cursite=headnode->next;
if(cursite==NULL)
{
cout<<"当前链表为空"<<endl;
//问题~~~~~无论运行多少次节点插入,表显示都为空表
}
cout<<"stockID is a char[6] value=";
cin>>temp->stockID;
关键是返回主函数的方法不对。
main()是回调主函数!这样NODE *a=new NODE() ; 这句话就重新被执行,刚才的那个 a 你再也无法控制,照成内存泄露了,而重新开始当然是空表!!!
ps:孩子,在学习语言的时候,别忘了学习软件工程的思想。你的设计很不符合面向对象和面相过程!
定义一个 全局变量 extern int Flag = 0;
main()
{static NODE *a;
if (Flag==0) {Flag=1;a=new NODE();}
......
}
不明白百度消息问我!
没有问题,显示
1.insert
2.show
请选择
可能是你的编译器有问题,或者是建立工程哪里搞错了