新微赢技术网

标题: [求助]运算符重载问题 [打印本页]

作者: 亚提斯    时间: 2009-11-3 01:49
标题: [求助]运算符重载问题
#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
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
什么意思?
作者: 况天佑    时间: 2009-11-3 01:49
题目跟问题毫不相关啊

str[i]-'0'
str[i]这个字符跟'0'的偏移量
作者: 风声鹤唳    时间: 2009-11-3 01:49
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初始化




欢迎光临 新微赢技术网 (http://bbs.weiying.cn/) Powered by Discuz! X3.2