找回密码
 注册
搜索
热搜: 回贴
  • 前程无忧官网首页 有什么好的平台可以
  • 最新的销售平台 互联网营销的平台有哪
  • 制作网页的基本流程 网页制作和网页设
  • 【帝国CMS】输出带序号的列表(数字排
  • 网站建设公司 三一,中联,极东泵车的
  • 织梦 建站 织梦网站模版后台怎么更改
  • 云服务官网 哪些网站有免费的简历模板
  • 如何建网站要什么条件 建网站要用什么
  • 吉林市移动公司电话 吉林省退休人员网
  • 设计类毕业论文 网站设计与实现毕业论
查看: 1852|回复: 4

[求助]运算符重载问题

[复制链接]
发表于 2009-11-3 01:49:32 | 显示全部楼层 |阅读模式 IP:江苏扬州
#include <iostream.h>
#include <string.h>
class Stat{
char str[101];
int n[10];
public:
Stat( char *str="" ){ strcpy(this->str, str); } //这里是什么意思?

void input();
void process();
friend ostream& operator<<(ostream&, Stat&);
};
void Stat::input()
{
cout << "input a string: ";
cin.getline( str, 100 );
}
void Stat::process()
{
unsigned int i;
for(i=0; i<10; i++) n[i] = 0;
for(i=0; i<strlen(str); i++)
if( (str[i]>='0' ) && (str[i]<='9') )
n[str[i]-'0']++ ;//这里是什么意思?
}
ostream& operator<<(ostream& ostr, Stat& st)
{
ostr << "串为:" << st.str << endl;
for( int i=0; i<10; i++)
ostr << "字符" << char('0'+i) << "的个数:" << st.n[i] << endl;
return ostr;
}
void main()
{
Stat st;
st.input();
st.process();
cout << st << endl;

帮忙读下程序,详细帮忙解释下该程序啊,谢过
}
发表于 2009-11-3 01:49:33 | 显示全部楼层 IP:江苏扬州
Stat( char *str="" ){ strcpy(this->str, str); } //这里是什么意思?
a function with default parameter ""
copy patameter to member variable


n[str[i]-'0']++ ;//it's easy to do it yourself.
回复

使用道具 举报

发表于 2009-11-3 01:49:35 | 显示全部楼层 IP:江苏扬州
什么意思?
回复

使用道具 举报

发表于 2009-11-3 01:49:37 | 显示全部楼层 IP:江苏扬州
题目跟问题毫不相关啊

str[i]-'0'
str[i]这个字符跟'0'的偏移量
回复

使用道具 举报

发表于 2009-11-3 01:49:39 | 显示全部楼层 IP:江苏扬州
n[str[i]-'0']++ ;//这里是什么意思?
计算str[i]那个数字字符的次数,你前面给n[]初始化0~9的单元里都是0了是吧,所以找到那个位置后自增OK,位置怎么来的呢,str[i]-'0'等于(int)str[i]-'0',所以定位到了n[]里和str[i]的数字字符一致的那个单元去了。

Stat( char *str="" ){ strcpy(this->str, str); } //这里是什么意思?
自己查strcpy的功能,这里是在构造函数里把成员str初始化
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|小黑屋|最新主题|手机版|微赢网络技术论坛 ( 苏ICP备08020429号 )

GMT+8, 2024-9-30 07:26 , Processed in 0.319731 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表