永发信息网

C++ friend 问题,作业好烦,求助,多谢! 为什么我使用了friend,还是不能使用private的start?

答案:1  悬赏:0  手机版
解决时间 2021-03-16 02:55
#include "yangrecord.h"
#ifndef yangllist_h
#define yangllist_h
class llist
{
private:
record *start;
char filename[16];
int readfile();
int writefile();
record * reverse(record *);
void cleanup();
public:
friend ostream& operator<<(llist&,ostream& os);
llist( );
llist(char []);
~llist( );
int addRecord(char[], char[], int, char[]);
int printRecord(char [ ]);
int modifyRecord(char[], char[], char[]);
void printAll();
int deleteRecord(char []);
void reverse();

};
#endif


#include"yangllist.h"
#include <iostream>
using namespace std;
int main()
{
char name[25] = "a";
char address[80] = "b";
int yearofbirth = 0;
char telno[15] = "c";
llist ls;
//ls.addRecord(name,name,yearofbirth,name);
ls.printAll();

system("pause");
}
ostream& operator<<(llist&,ostream& os)
{
int data = 0;
struct record *temp;

if (llist::start == NULL)
{
cout << "No Record Found\n" << endl;
}
else
{
temp = llist::start;
while (temp != NULL)
{
data++;
cout << "Record:" << data << endl;
cout << "Name:" << (temp->name) << endl;
cout << "Address:" << (temp->address) << endl;
cout << "Year of Birth:" << (temp->yearofbirth) << endl;
cout << "Telephone Number:" << (temp->telno) << endl;
temp = (temp->next);
}
}
return os;
}
最佳答案
Note1:你的代码有其它的错误:
if (llist::start == NULL) 中,
start是nonstatic data member, 不能写 llist::start,
应该先写 ostream& operator<<(llist& L, ostream& os)
然後if改为
if (L.start == NULL)

Note2:
temp = llist::start;
也错了, 改法同Note2.

Note3:
private的start 可以用.
前两个错改好就可以通过编译.

Note4:
ostream& operator<<(llist& L,ostream& os)
写法很不正常. 这样对 llist的object k, 就不能写 cout << k; 变成是要写 k << cout;
应该是这样 ostream& operator<<(ostream& os, const llist& L)
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
去西藏当兵退伍回来就能当公务员吗?
我村有一户只有老人,老人有一份宅基地老人去
远程连接hive 本机需要有hive吗
谁能把总账跟明细账的实例登记样本(含总账,
0.8888*0.6+0.2222*7.6(简便运算)
北京国际机场t2航站楼23点有出租车吗?
我在长沙做互联网销售的,每天都要找公司信息
韩剧《市政厅》国语版
广州站广州至遵义列车经过茂名几点
黑猫茶业永春总经销地址有知道的么?有点事想
纸白银保证金是什么,怎么赎回?
交流接触器线圈是一根线吗?为什么万用表测量
艰苦什么决成语填空
接官亭地址在什么地方,想过去办事
科夏乔龙我想知道这个在什么地方
推荐资讯
WinXP移动硬盘无法显示怎么解决
白犀牛就是黑犀牛的白化品种?据说白犀牛已经
汽车碰擦的处理
鼠标为什么不能喝手机放一起
如何把微信文章推送到kindle
英语单词有字根吗?
电脑开机黑屏还有杀毒软件
德国北威州有哪些著名大学?
guy可以形容女的吗
我总想找个理由 回到相遇的前头 就当我们从来
房子外西南方向种竹子对西边人家风水有影响吗
一建视频
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?