网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
08月31日漏签0天
c++吧 关注:631,032贴子:2,114,065
  • 看贴

  • 图片

  • 吧主推荐

  • 游戏

  • 25回复贴,共1页
<<返回c++吧
>0< 加载中...

如何在一个类中查看另一个类的链表

  • 只看楼主
  • 收藏

  • 回复
  • 爱_一世
  • ,
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
//读者结构
struct rd{
string names;//姓名
int no//编号
rd*Next;
};
//读者类
class rc{
public:
rd*heads;
public:
rc(){
heads=new rd;
heads->no=01;
heads->names="admin";
heads->Next=NULL;
}
~rc(){delete heads;}
void adding();// 创建读者链表
}
//新类
class bc{
public:
void read();
}
void bc::read(){
rk*q; rc c;
q=c.heads;
while(q!=NULL)
{
cout<<q->names<<q->no<<endl;
q=q->Next;
} 为什么看不到链表,只能看到头结点,怎么才能看到完整的链表呢?
}
void main(){
rk*q; rc c;
q=c.heads;
while(q!=NULL)
{
cout<<q->names<<q->no<<endl;
q=q->Next;
} 只能在main函数里就能看到完整的链表
}
萌新小白求各位大神帮忙,如何在void bc::read()看到完整的链表!


  • 爱_一世
  • ,
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
不是rk是rd


2025-08-31 03:08:01
广告
不感兴趣
开通SVIP免广告
  • 爱_一世
  • ,
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
防沉


  • 爱_一世
  • ,
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
防尘


  • 爱_一世
  • ,
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
防尘


  • 爱_一世
  • ,
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
防城


  • VX186743879
  • &
    9
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
都没创建链表怎么读
还有~rc()不能只删除头结点


  • 爱_一世
  • ,
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼


2025-08-31 03:02:01
广告
不感兴趣
开通SVIP免广告
  • VX186743879
  • &
    9
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
rk*q; rc c; //创建了一个只有头结点的链表c
q=c.heads;
while(q!=NULL)
{
cout<<q->names<<q->no<<endl;
q=q->Next;
} //然后你问为什么只有头结点


  • 经济基础的春天
  • |
    7
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
友员,实例,静态。看具体情况 。


  • jsjy2000
  • ==
    10
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
你的最后一个类——新类,我不明白它跟读者类有啥区别,只是为了输出读者信息吗?那为何不在读者类中直接添加一个输出函数?读者类中至少要包括几个函数:构造函数、析构函数、输入函数,输出函数,等等。至于添加、删除一般也是需要的。


  • jsjy2000
  • ==
    10
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
#pragma once
#include<iostream>
#include<String>
using namespace std;
#ifndef NULL
#define NULL=0
#endif
struct StructReader
{
string sNames;
int iNo;
StructReader* pNext;
};
class CReader
{
private:
StructReader *pStart,*pEnd;
int iNumOfReader;
public:
CReader(void)
{
pStart=NULL;
pEnd=NULL;
iNumOfReader=0;
}
int InitReader(void) //初始化成功返回1,失败返回0
{
pStart=new StructReader();
if(pStart!=NULL)
{
pStart->sNames="name";
pStart->iNo=0;
pStart->pNext=NULL;
return 1;
}
else return 0;
}
StructReader* AddReader(void)
{
if(pStart==NULL)//如果表格不存在,那么首先要初始化表
{
cout<<"The List of reader is not exist. System is now initializing."<<endl;
if(InitReader())cout<<"Initialization success!"<<endl;
else {cout<<"Initialization failed!"<<endl;return 0;}
}
string myName;
cout<<"Input the name of a reader: ";
cin>>myName;
//如果读者数目为0,即为空表,则从第一个节点添加数据
if(!iNumOfReader)
{
pStart->sNames=myName;
pStart->iNo=1;
pStart->pNext=NULL;
iNumOfReader++;
pEnd=pStart;
return pEnd;
}
//表格存在,则添加到最后一个结点
StructReader *pmyReader=new StructReader;
pmyReader->sNames=myName;
pmyReader->iNo=pEnd->iNo+1;
pmyReader->pNext=NULL;
pEnd->pNext=pmyReader;
pEnd=pmyReader;
iNumOfReader++;
return pEnd;
}
void DeleteReader(void)
{
cout<<"输入需要删除的读者姓名:";
string aName;
cin>>aName;
StructReader *pFind=pStart,*pPrior=NULL;
while(pFind)
{
if(pFind->sNames==aName)
{
if(pPrior!=NULL)pPrior->pNext=pFind->pNext;
//如果是第一个结点,那就要重设start指针
if(pFind==pStart)pStart=pFind->pNext;
//如果是最后一个结点,那就要重设end指针
if(pFind==pEnd)pEnd=pPrior;
delete pFind;
iNumOfReader--;
break;
}
else {pPrior=pFind;pFind=pFind->pNext;}
}
if(pFind==NULL)cout<<"未找到该读者。"<<endl;
}
void OutputReader()
{
StructReader *p=pStart;
if(!iNumOfReader)cout<<"不存在读者列表,请新建读者列表。"<<endl;
for(int i=0;i<iNumOfReader;i++)
{
cout<<"姓名:"<<p->sNames<<" "<<"ID:"<<p->iNo<<endl;
p=p->pNext;
}
}
int NumOfReader(void) //返回读者数量
{
return iNumOfReader;
}
~CReader(void)
{
StructReader* pDelete=pStart;
while(pDelete)
{
StructReader *pTemp=pDelete;
pDelete=pDelete->pNext;
delete pTemp;
iNumOfReader--;
}
}
};


  • jsjy2000
  • ==
    10
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
#include "stdafx.h"
#include "Reader.h"
int _tmain(int argc, _TCHAR* argv[])
{
CReader ReaderList;
for(int i=0;i<5;i++)
ReaderList.AddReader();
//Output List
ReaderList.OutputReader();
cout<<"the number of readers are:"<<ReaderList.NumOfReader()<<endl;
//Delete a reader
ReaderList.DeleteReader();
//Output List again
ReaderList.OutputReader();
cout<<"the number of readers are:"<<ReaderList.NumOfReader()<<endl;
return 0;
}


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 25回复贴,共1页
<<返回c++吧
分享到:
©2025 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示