C++编程(6)

Educn 8251 beijing university of posts

Info iconThis preview shows page 1. Sign up to view the full content.

View Full Document Right Arrow Icon
This is the end of the preview. Sign up to access the rest of the document.

Unformatted text preview: :prim(bool get) { if(get) Lexer::get_token(); switch(Lexer::curr_tok){ case Lexer::NUMBER: Lexer::get_token(); // … } } double Parser::prim(bool get) { using Lexer::get_token; using Lexer::curr_tok; if(get) get_token(); switch(curr_tok){ case Lexer::NUMBER: get_token(); // … }} Beijing University of Posts & Telecommunications Beijing young@buptnet.edu.cn 也可以把有关的使用说明放在Parser名字空间的定 double Parser::term(bool get) 义里 namespace Parser{ double prim(bool); double term(bool); double expr(bool); { double left = prim(get); for(;;) switch(curr_tok) { case Lexer::MUL: left *= prim(true); using Lexer::get_token; break; using Lexer::curr_tok; case Lexer::DIV: using Error::error; if(double d = prim(true)) } {left /= prim(true); break;} return error(“divided by 0”); /* … … */ }} Beijing University of Posts & Telecommunications Beijing young@buptnet.edu.cn 8.2.3 使用指令 一个使用指令能把来自一个名字空间的所有 名字都变成可用的 namespace Parser{ double prim(bool); double term(bool); double expr(bool); } using namespace Lexer; using namespace Error; Beijing University of Posts & Telecommunications Beijing young@buptnet.edu.cn 8.2.4 多重界面 对于名字空间,编程者看 到和用户看到的界面往往 是没有必要相同的,用户 看到的界面通常要比编程 者所看到的简单的多 一般情况下,编程界面变 化比较频繁 设计界面时要考虑两种界 面,同时注意尽量避免编 程界面的变化影响到用户 界面 //给实现的界面 namespace Parser{ double prim(bool); double term(bool); double expr(bool); } using namespace Lexer; using namespace Error; //给使用者的界面 namespace Parser{ double expr(bool); } Beijing University of Posts & Telecommunications...
View Full Document

Ask a homework question - tutors are online