2 a652751663 a652751663 于 2015.06.16 08:35 提问

关于链表在函数对象中节点的存储问题
c++

代码如下,写的是职工信息管理系统的前部分代码,通过类的对象p把数据保存在了结点中,但是只是对象,无法永久保存在链表里面,翻了很多书,代码,实在想不通,有人说用指针的引用List*&p来解决,但是我还是不懂,求大神帮帮忙吧,我一个人实在解决不了了,跪求大神啊,,,,,,
#include
#include
#include
using namespace std;
class Stuff
{
public:
char* Name;
int medium;
char* pNo;
char* pDepno;
char* pSalary;
class Stuff* next;
Stuff()
{
Name=NULL;
medium=NULL;
pNo=NULL;
pDepno=NULL;
pSalary=NULL;
next=NULL;
}
};
class List
{
int medium;
Stuff* Head;
public:
List()
{
medium=0;
Head=new Stuff;
}
void Add(); //添加员工信息
void AddInput(char*no,char*name,char*dep,char*salary); //添加员工数据重载单链表
void output(); //输出员工信息
void stuffswap(Stuff* a,Stuff* b);//信息交换
void sordon(); //通过pno指针将职工记录按no从小到大链接起来
void depno(); //通过pdepno指针将职工记录按depno从小到大链接起来
void outputdepno(); //沿pdepno链输出全部职工信息
void sordsalary(); //通过psalary指针将职工记录按salary从小到大链接起来
void empty(); //清空员工信息
void savexit(); //存储到文件并退出
~List();
};
void List::AddInput(char no,char *name,char *dep,char *salary)
{
Stuff
q=new Stuff;
Stuff* p=Head;
q->pNo=new char[strlen(no)+1];
q->pDepno=new char[strlen(dep)+1];
q->pSalary=new char[strlen(salary)+1];
q->Name=new char[strlen(name)+1];
strcpy_s(q->pNo,2,no);
strcpy_s(q->pDepno,2,dep);
strcpy_s(q->pSalary,4,salary);
strcpy_s(q->Name,2,name);
//medium++;
for(;q->next!=0;q=q->next)
{p->next=q;}
}
void List::Add() //员工信息添加
{
Stuff*p=new Stuff;
char no[50],name[50],dep[50],salary[50];
int select;
do
{
cout<<"请输入职工号:";
cin>>no;
cout<<"请输入员工姓名:";
cin>>name;
cout<<"请输入部门号:";
cin>>dep;
cout<<"请输入工资数:";
cin>>salary;
while(cin.fail())
{
cout<<"请输入正确的工资数。";
cin.clear();
fflush(stdin);
cin>>salary;
}
cout< /*p->pNo=no;
p->pDepno=dep;
p->Name=name;
p->pSalary=salary;
medium++;
p->next=Head->next;
Head->next=p;
//for(int i=0;i //{
//p->next=
//}*/
cout<<"数据添加成功!是否继续添加?(Y/N)";
cin>>select;
}
while(select=='y'||select=='Y');
//AddInput(no,name,dep,salary);
output();
}

1个回答

ycg514230
ycg514230   Rxr 2015.06.16 10:40

你这个问题描述不是很清楚,对象或者指针都可以存在链表里面啊。

a652751663
a652751663 不知道额。,,存储不了,,
2 年多之前 回复
ycg514230
ycg514230 回复a652751663: 我看你是new出来的,怎么会释放呢?
2 年多之前 回复
a652751663
a652751663 但是对象存进去后出了函数就释放了,没用了
2 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片