- 1、本文档共3页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
好的,坏的,不赞成的
sebastian 翻译
关于我第一次程序设计工作的可笑事(这是很多年以后,我在与我的新婚妻子珍
妮喝早茶时谈起的。)是鲍勃如何死皮赖脸地不想离职,尽管他根本无法胜任。
我记得一个很特别的天气晴朗春天的早晨
当时我正在努力地完成一段新代码。这时鲍勃逛到了我的工作隔间,依在隔间的
--
墙上,喝了一口咖啡。 不,我不知道他手上为什么总是有一杯咖啡,鲍勃站在
那里微笑的说: 嗨!菜鸟。”
我漫不经心的说:“嗨,鲍勃,什么事?”
“这段代码你上周检查过了吗?”他耸耸肩,“好,它破坏了整体结构。编译器
说你定义了Output 函数两次,你不能这样做。”
“什么?”我诧异的说:“但是,我肯定我已经生成了……”我快速的把我一周
前做的文件调入了编辑器:
// file trans.cpp
//
static void Output( ostream o ) { /*...*/ }
// ...
void ProcessTransaction( /*...*/ )
{
// ...
Output( cout );
// ...
}
“这些,不是很好吗,”我说道,坐了回去,心里很满意,看来鲍勃完全是无中
生有。
鲍勃笑了笑。“继续看下去。”他催促道。
我皱了皱眉,用grep扫描了源代码。期望发现Output 函数在同一模块中是否还出
3
现在其他什么地方。另人惊讶的是,我在另 个文件里发现了它。
// file output.h
void Output( std ostream );
// file output.cpp
#include output.h
// ...
void Output( ostream out ) { /*...*/ }
// file dbinit.cpp
//
#include output.h
// ...
void InitDatabase()
{
1
// ...
Output( clog );
// ...
}
我沉思了一下。“但是,这是同一个Output 函数吗?”我问道。
鲍勃不耐烦的用拿着咖啡杯的手比划了一下,你刚才没听我说吗?我刚才告诉你
了你写的代码。无法正常生成。
“生成什么?”
“就在我们的嵌入式目标平台上,至少我看到生成器抱怨无法生成。修正它,弄
完后告诉我一起,我可以接下去干。”鲍勃呷了一口咖啡,叫了几声,然后离开
了。
好了,我老实承认:一开始我并不相信鲍勃的话。
我试着用我们一直用的编译器,重新生成,一切正常。我受到鼓舞,更换了Shell,
用我们用于嵌入式目标的编译器重成生成,结果无法生成。我呆了下来,喃喃自
语:我用的第一个编译器允许两个Output 函数共存,但另外一个编译器却抱怨说
存在重复的定义,尽管前后两个是同一段代码。
我打算放弃了,并去向温迪求教时,我听到了我身后传来了一阵飒飒的翻书声,
这时一声合上书的声音从我身后传来:“需要帮助吗?Guru 的声音从我后面传
来了:“你好像遇到了什么难题了,需要我帮忙吗?”
我转过来看到她在微笑,“当然,”我很高兴有人来帮我,“这是我写的代码,
这里是编译器反映的错误,我到底错在哪里了?”
她快速的扫视了一遍代码和编译结果。“哦,”她说,“这里有两个问题,但是
我们以前已经讨论研究过了这个问题,你认为发生了什么事?你尽所能解释一下
发生了什么。”
我接受了挑战:“好的,对...一个是在trans.cpp 中,我希望在ProcessTans 中调用
Output是那个静态版本的Output 。”
“还有呢?”她催促道。
“另一方面,在
您可能关注的文档
- 坏人都知道我有多厉害-读后感.pdf
- 坏情绪会导致的六种皮肤窘境.pdf
- 坏比好更好.pdf
- 坏病 -虚证.ppt
- 坏账准备练习.ppt
- 坏账损失的税务处理_袁瑞英.pdf
- 坐人要守的100条戒.pptx
- 坛圆欺件过程改过.pdf
- 坛山第14周---三年级第2课时.doc
- 坛山第14周---六年级第2课时.doc
- 2025年工业互联网平台云计算资源动态分配的云计算与混合云安全融合报告.docx
- 针对工业质检需求,2025年AI图像识别技术精准度优化方案发展趋势研究报告.docx
- 新能源汽车电池回收环保风险控制与绿色转型报告2025.docx
- 绿色建筑政策环境分析报告:2025年市场推广机遇与挑战.docx
- 2025年房地产资金申请报告:城市更新项目资金申请分析.docx
- 消费者体验至上,2025年个性化定制服务市场体验至上策略报告.docx
- 基因治疗药物临床试验中的临床试验药物经济学评价工具与方法报告.docx
- 2025年环保行业环保产业投资风险与机遇研究报告.docx
- 宠物医疗市场2025深度解析——市场规模、增长速度与行业机遇报告.docx
- 生物识别技术市场策略报告:指纹面部识别2025年市场策略分析.docx
文档评论(0)