| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 500 人关注过本帖
标题:想不明白,,,,,
只看楼主 加入收藏
comebaby
Rank: 1
等 级:新手上路
帖 子:85
专家分:0
注 册:2006-6-17
收藏
 问题点数:0 回复次数:5 
想不明白,,,,,

请帮我决解一下,thank!!!




namespace Lexer
{
enum Token_value
{
NAME,NUMBER,END,PLUS='+',MINUS='-',MUL='*',DIU='/',PRINT=';',ASSIGN='=',
LP='(',RP=')'
};
Token_value curr_tok;
double number_value;
string string_value;
Token_value get_token();
}

Token_value Lexer::get_token() //我使用的是VC++,为什么这里会编译不通过呢!
//而其他的函数在名字空间外又可以?
{
char ch=0;
cin>>ch;
switch(ch)
{
case 0:
return curr_tok=END;
case ';':case '*':case '/':case '+':case '-':case '(':case ')':case '=':
return curr_tok=Token_value(ch);
case '0':case '1':case '2':case '3':case '4':case '5':case '6':case '7':
case '8':case '9':case '.':
cin.putback(ch);
cin>>number_value;
return curr_tok=NUMBER;
default:
if(isalpha(ch))
{
cin.putback(ch);
cin>>string_value;
return curr_tok=NAME;
}
}
}



另外的程序也是一样
class Date
{
private:
int d,m,y;
static Date default_date;
public: //公用界面
enum Month
{
jan=1,feb,mar,apr,may,jun,jul,aug,sep,oct,nov,dec
};
class Bad_date{}; //异常类
Date(int dd,Month mm,int yy);
//检查Date的函数:
int day()const;
Month month()const;
int year()const;
string string_rep()const;
void char_rep(char s[])const;
static void set_default(int dd, Month mm ,int yy);
//修改Date的函数:
Date &add_year(int n);
Date &add_month(int n);
Date &add_day(int n);
void show();
};

Month Date::month()const //老是说这里出错,我都怀疑是不是自己写错了
{
switch(m)
{
case 1:return jan;break;
case 2:return feb;break;
case 3:return mar;break;
case 4:return apr;break;
case 5:return may;break;
case 6:return jun;break;
case 7:return jul;break;
case 8:return aug;break;
case 9:return sep;break;
case 10:return oct;break;
case 11:return nov;break;
case 12:return dec;break;
default:
throw Bad_date();break;
}
}

搜索更多相关主题的帖子: color double 
2007-01-01 08:02
comebaby
Rank: 1
等 级:新手上路
帖 子:85
专家分:0
注 册:2006-6-17
收藏
得分:0 

而把它们放回类或者名字空间里写,为什么有可以

namespace Lexer
{
enum Token_value
{
NAME,NUMBER,END,PLUS='+',MINUS='-',MUL='*',DIU='/',PRINT=';',ASSIGN='=',
LP='(',RP=')'
};
Token_value curr_tok;
double number_value;
string string_value;
Token_value get_token()
{
char ch=0;
cin>>ch;
switch(ch)
{
case 0:
return curr_tok=END;
case ';':case '*':case '/':case '+':case '-':case '(':case ')':case '=':
return curr_tok=Token_value(ch);
case '0':case '1':case '2':case '3':case '4':case '5':case '6':case '7':
case '8':case '9':case '.':
cin.putback(ch);
cin>>number_value;
return curr_tok=NUMBER;
default:
if(isalpha(ch))
{
cin.putback(ch);
cin>>string_value;
return curr_tok=NAME;
}
}
}
}

2007-01-01 08:04
kai
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:52
帖 子:3450
专家分:59
注 册:2004-4-25
收藏
得分:0 
如果可以的话,把完整代码发到我的邮箱。如果不清楚我的email 地址,发短信索取。

自由,民主,平等,博爱,进步.
中华民国,我的祖国,中华民国万岁!中华民国加油!
本人自愿加入中国国民党,为人的自由性,独立性和平等性而奋斗!
2007-01-01 10:09
comebaby
Rank: 1
等 级:新手上路
帖 子:85
专家分:0
注 册:2006-6-17
收藏
得分:0 
hello@hotmail.com

你的邮箱是这个不``

我已经发过去了
2007-01-01 11:49
kai
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:52
帖 子:3450
专家分:59
注 册:2004-4-25
收藏
得分:0 
看来你是个新来的,我现在给你的邮箱地址轻易是不给人的。

自由,民主,平等,博爱,进步.
中华民国,我的祖国,中华民国万岁!中华民国加油!
本人自愿加入中国国民党,为人的自由性,独立性和平等性而奋斗!
2007-01-01 15:20
smartwind
Rank: 1
等 级:新手上路
威 望:1
帖 子:277
专家分:0
注 册:2006-11-13
收藏
得分:0 
Token_value是在namespace Lexer中声明及定义的,在空间外不能使用

后面那个还不清楚什么问题,你最好把编译器报出的错误信息贴上来

2007-01-04 14:17
快速回复:想不明白,,,,,
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.023448 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved