帮我看看这个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;

关键是返回主函数的方法不对。

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
请选择

可能是你的编译器有问题,或者是建立工程哪里搞错了