设为首页收藏本站

新微赢技术网

 找回密码
 注册
搜索
热搜: 回贴
查看: 1827|回复: 4
打印 上一主题 下一主题

[求助]运算符重载问题

[复制链接]
跳转到指定楼层
1#
发表于 2009-11-3 01:49:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#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;

帮忙读下程序,详细帮忙解释下该程序啊,谢过
}
2#
发表于 2009-11-3 01:49:33 | 只看该作者
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.
回复 支持 反对

使用道具 举报

3#
发表于 2009-11-3 01:49:35 | 只看该作者
什么意思?
回复 支持 反对

使用道具 举报

4#
发表于 2009-11-3 01:49:37 | 只看该作者
题目跟问题毫不相关啊

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

使用道具 举报

5#
发表于 2009-11-3 01:49:39 | 只看该作者
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初始化
回复 支持 反对

使用道具 举报

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

本版积分规则

申请友链|小黑屋|最新主题|手机版|新微赢技术网 ( 苏ICP备08020429号 )  

GMT+8, 2024-11-18 05:56 , Processed in 0.098364 second(s), 9 queries , Gzip On, Memcache On.

Powered by xuexi

© 2001-2013 HaiAn.Com.Cn Inc. 寰耽

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