永发信息网

下标运算符重载问题

答案:1  悬赏:0  手机版
解决时间 2021-04-11 11:18

#include<iostream.h>
#include<string.h>
struct item{
char*name;
long telnum;
};
class tel_array{
private:
item*table;
int max,items;
public:
tel_array(int nm=0){
max=nm;
items=0;
table=new item[max];
}
long&operator[](char*nm){
item*pi;
for(pi=table;pi<table+items;pi++)
if(strcmp(pi->name,nm)==0)
return pi->telnum;
pi=table+items++;
pi->name=new char[strlen(nm)+1];
strcpy(pi->name,nm);

pi->telnum;
return pi->telnum;
}
void printall(){
for(int i=0;i<items;i++)
cout<<table[i].name<<"."<<table[i].telnum<<endl;
}
};
void main(){
tel_array telnum_table(10);
telnum_table["zhao"]=123456;
telnum_table["Qian"]=123590;
cout<<"zhao"<<telnum_table["zhao"]<<endl;//cout<<"ok"<<endl;
telnum_table.printall();
}
帮我解析一下加粗部分的代码,为什么是table=new item[max]?

pi是item的对象,怎么和int型的items相加呀?

最佳答案
item*table;

table = new item[max]这是定义一个item数组

table+items++
这个执行的是指针算术

int a[] = {1,2,3}
int* p = a; // *p = 1;
++p; // *p = 2;
++p; // *p = 3;
p -= 2; // *p = 1
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
把这个句子译成英语:相信自己,你可以的,你
如图是某班学生最喜欢的球类活动人数统计图,
山西财经大学考研科目
请问谁教孩子学英语的儿歌?
小牛拉干屎带血用什么药好使
狗的肚皮上长脓泡怎么办?
win7开了混响和侦听还是不能内放怎么办
在淘宝网里买QQ黄转是不是真的?
Chinese American should preserve their Chi
饺子煮熟了没吃完又不想浪费 有什么好招么
天宇·威尼斯小镇地址在哪,我要去那里办事
都有什么好听的歌啊!最好是悲伤的
家里有人!晚上可以和老公做夫妻房事吗??
单选题反对蒋介石反动统治的第二条战线是指A.
魔域:和薯光战魂法宝要什么原料?
推荐资讯
智能手机的那个操作系统也就是塞班多少一类的
我想看看好一点的皮丘是什么样
曹家冲在什么地方啊,我要过去处理事情
风冷大绵羊容易坏么?
李二牛,铁拳团,那电视叫什么,
A和C谁比较高?(IQ题)
淘宝店铺装修怎么做最便宜又好看!
武汉市桥口区宝丰路23号具体位置在哪
为什么头发掉的特厉害啊
小米老用户抢红包在哪里啊,下载了小米商城AP
广州办理的银行卡能不能异地销卡
三星手机怎样更新,三星手机怎么更新最新版本
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?