﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-只有有耐心圆满完成简单工作的人，才能够轻而易举地完成困难的事。-随笔分类-理越辩越明</title><link>http://www.cppblog.com/leetaolion/category/6296.html</link><description>Only those who have the patience to do simple things perfectly ever acquire the skill to do difficult things easily. </description><language>zh-cn</language><lastBuildDate>Thu, 21 May 2009 10:54:22 GMT</lastBuildDate><pubDate>Thu, 21 May 2009 10:54:22 GMT</pubDate><ttl>60</ttl><item><title>[初探Xerces系列]IDE之惑</title><link>http://www.cppblog.com/leetaolion/archive/2009/05/21/83569.html</link><dc:creator>创建更好的解决方案</dc:creator><author>创建更好的解决方案</author><pubDate>Thu, 21 May 2009 07:01:00 GMT</pubDate><guid>http://www.cppblog.com/leetaolion/archive/2009/05/21/83569.html</guid><wfw:comment>http://www.cppblog.com/leetaolion/comments/83569.html</wfw:comment><comments>http://www.cppblog.com/leetaolion/archive/2009/05/21/83569.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/leetaolion/comments/commentRss/83569.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/leetaolion/services/trackbacks/83569.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: BCB6.0的sample工程，用CB07升级之后，build全部ok，运行出现问题，提示coreide100.bpl非法访问，明显不是代码问题，问题出在ide，我的版本号是：CodeGear™ C++Builder® 2007  Version 11.0.2987.10779。<br>&nbsp;&nbsp;<a href='http://www.cppblog.com/leetaolion/archive/2009/05/21/83569.html'>阅读全文</a><img src ="http://www.cppblog.com/leetaolion/aggbug/83569.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/leetaolion/" target="_blank">创建更好的解决方案</a> 2009-05-21 15:01 <a href="http://www.cppblog.com/leetaolion/archive/2009/05/21/83569.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>初始化const, static, const static, static const成员变量</title><link>http://www.cppblog.com/leetaolion/archive/2009/01/10/71651.html</link><dc:creator>创建更好的解决方案</dc:creator><author>创建更好的解决方案</author><pubDate>Sat, 10 Jan 2009 07:29:00 GMT</pubDate><guid>http://www.cppblog.com/leetaolion/archive/2009/01/10/71651.html</guid><wfw:comment>http://www.cppblog.com/leetaolion/comments/71651.html</wfw:comment><comments>http://www.cppblog.com/leetaolion/archive/2009/01/10/71651.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cppblog.com/leetaolion/comments/commentRss/71651.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/leetaolion/services/trackbacks/71651.html</trackback:ping><description><![CDATA[// 很多人问，答者聊聊，整理一下，以供参考<br>class MyTestClass<br>{<br>public:<br>&nbsp;&nbsp;&nbsp; MyTestClass() : m_ciInt(1), m_csStr("MyStr")&nbsp; // const成员变量，在ctor参数列表中初始化<br>&nbsp;&nbsp;&nbsp; {}<br>public:<br>&nbsp;&nbsp;&nbsp; const int m_ciInt;<br>&nbsp;&nbsp;&nbsp; const String m_csStr;<br>&nbsp;&nbsp;&nbsp; static int m_siInt;<br>&nbsp;&nbsp;&nbsp; static String m_ssStr;<br>&nbsp;&nbsp;&nbsp; const static int m_csiInt;<br>&nbsp;&nbsp;&nbsp; const static String m_cssStr;<br>};<br>int MyTestClass::m_siInt = 1; // static成员变量，在外部定义<br>String MyTestClass::m_ssStr = "MyStr"; // static成员变量，在外部定义<br>const int MyTestClass::m_csiInt = 1;&nbsp; // const static/static const成员变量，在外部定义<br>const String MyTestClass::m_cssStr = "MyStr"; // const static/static const成员变量，在外部定义
<img src ="http://www.cppblog.com/leetaolion/aggbug/71651.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/leetaolion/" target="_blank">创建更好的解决方案</a> 2009-01-10 15:29 <a href="http://www.cppblog.com/leetaolion/archive/2009/01/10/71651.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>狗，哈士奇，跳蚤，继承，聚合，UpCast和DownCast</title><link>http://www.cppblog.com/leetaolion/archive/2008/09/20/62344.html</link><dc:creator>创建更好的解决方案</dc:creator><author>创建更好的解决方案</author><pubDate>Sat, 20 Sep 2008 03:22:00 GMT</pubDate><guid>http://www.cppblog.com/leetaolion/archive/2008/09/20/62344.html</guid><wfw:comment>http://www.cppblog.com/leetaolion/comments/62344.html</wfw:comment><comments>http://www.cppblog.com/leetaolion/archive/2008/09/20/62344.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cppblog.com/leetaolion/comments/commentRss/62344.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/leetaolion/services/trackbacks/62344.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 验证了结果是：指向子类对象的父类指针，在做DownCast时，不会因为自身是父类指针而使DownCast出的子类对象指针发生缺失，连一只虱子、跳蚤都不会少。&nbsp;&nbsp;<a href='http://www.cppblog.com/leetaolion/archive/2008/09/20/62344.html'>阅读全文</a><img src ="http://www.cppblog.com/leetaolion/aggbug/62344.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/leetaolion/" target="_blank">创建更好的解决方案</a> 2008-09-20 11:22 <a href="http://www.cppblog.com/leetaolion/archive/2008/09/20/62344.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>温度计的寓言</title><link>http://www.cppblog.com/leetaolion/archive/2008/03/14/44525.html</link><dc:creator>创建更好的解决方案</dc:creator><author>创建更好的解决方案</author><pubDate>Fri, 14 Mar 2008 12:49:00 GMT</pubDate><guid>http://www.cppblog.com/leetaolion/archive/2008/03/14/44525.html</guid><wfw:comment>http://www.cppblog.com/leetaolion/comments/44525.html</wfw:comment><comments>http://www.cppblog.com/leetaolion/archive/2008/03/14/44525.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/leetaolion/comments/commentRss/44525.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/leetaolion/services/trackbacks/44525.html</trackback:ping><description><![CDATA[故事是这样的：有一个由5个年轻人合伙建立的小软件公司YoungSoft co. ltd，成立不久，业务不多，刚刚实现收支平衡。<br>一场突发的流行性感冒，使得市面上体温计奇缺，价格也是水涨船高。一个农民企业家投资50w创建的温度计公司Good Metor，一直惨淡经营，这么好的机会，自然不会放过。市场上价格最高的是一种能记录一段时间内人体温度变化曲线，并判断使用者是否患上这种可怕的流感的智能体温计Smart Thermometer。其实现很简单，无非是在传统的体温计上加一块单片机，体温计和单片机满大街都是，而单片机内程序的掌握在AnyMetor几家大型温度计厂商手中，从不外泄。于是Good Metor决定赌一把，找人开发这种软件，希望借此咸鱼翻身。<br>一个偶然的机会，GoodMetor来到了YoungSoft，双方一拍即合。由YongSoft承担Smart Thermometer软件的开发工作，价钱谈定100kRMB，定金30k，双方约定3个月之内交货，按期交货另有奖金10kRMB。<br>这种工作对YongSoft简直是手到擒来，哥5个齐上阵，不肖两个月的时间，GoodSmartMetro v1.0版本就Release了。剩下一个月的时间，5位年轻人有足够的时间喝喝茶，聊聊天，做些零碎的活，等着GoodMetor来验收。<br>在两个半月的时候，GoodMetor就坐不住了，匆匆忙忙来到YoungSoft，当得知软件已经正式发布的时候，自然喜不自禁，当日即付清货款和奖金，回厂批量生产。<br>可怕的流感又持续了两个月，终于的到了有效的控制。GoodMetor公司的超低价只能体温计在这次抗击流感中在为国家和社会作出卓越贡献的同时，更为公司赚了个盆满钵满，500w的纯利润啊，GoodMetor的老大做梦都没想到过。<br>CPI高企，钱存银行不明智，GoodMetor老大决定：扩大生产。生产啥呢？现在人都讲究健康饮食，饮用水上更是严格把关，科学研究表明，烧开水时如果水温上升曲线和推荐曲线吻合，人喝了之后会更健康。于是一种监测水温控制火候的新型灶具HealthOven应运而生。老大拍板，就搞它了。<br>于是又找到了YoungSoft。<br>半年过去了，YoungSoft的几个年轻人做了几个小项目，人员结构也发生了改变，大家有了更明确的分工。一个联系业务，分析需求，少量编码的HuManager，三个编码的WenProgramers，一个负责测试，少量编码的WuTester。<br>HuManager分析认为，HealthOven和SmartThermometer之间，除测量范围从人的体温上升到水的沸点之外，温度计中的液体也从水银换成了酒精。GoodSmartMetro v1.0中采用了一个免费的液体体积温差换算库MercuryLib，所以做的时候省去了大把的工作。酒精和水银的物理属性相差太大，这次换算的功能怕是要自己开发了，暂定名为LiquidLib，支持水银和酒精的体积温差换算。但是以前直接调用MercuryLib的模块必须进行解耦和测试，多数不能要了。<br>最终，双发约定5个月内软件交付使用，总价50wRMB，定金20wRMB，及时交付奖金5wRMB。<br>在GoodSmartMetro v2.0开发进行到第3个月的时候，WenProgramer了解到，产业升级过程中，温控炉GreenIron炼钢能大幅降低能耗，并在一次项目组CCB会议上提了出来，大家一致认为YoungSoft要加速发展，必须着眼未来。GoodSmartMetro v2.0版本可以为将来打开GreenIron市场早做准备。不能再吃MercuryLib那样的亏了。LiquidLib模块需要良好的通用性，将来可以作为平台的基础模块，支持各种不同液体做成温度计的温控软件开发。<br>GreenIron设备商采用不同的液体做成的温度计，在这个问题上，业界还没有统一的标准。<br>（未完待续...）<br>
<img src ="http://www.cppblog.com/leetaolion/aggbug/44525.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/leetaolion/" target="_blank">创建更好的解决方案</a> 2008-03-14 20:49 <a href="http://www.cppblog.com/leetaolion/archive/2008/03/14/44525.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>关于实战测试驱动开发的一点感想。</title><link>http://www.cppblog.com/leetaolion/archive/2008/03/05/43741.html</link><dc:creator>创建更好的解决方案</dc:creator><author>创建更好的解决方案</author><pubDate>Wed, 05 Mar 2008 05:16:00 GMT</pubDate><guid>http://www.cppblog.com/leetaolion/archive/2008/03/05/43741.html</guid><wfw:comment>http://www.cppblog.com/leetaolion/comments/43741.html</wfw:comment><comments>http://www.cppblog.com/leetaolion/archive/2008/03/05/43741.html#Feedback</comments><slash:comments>7</slash:comments><wfw:commentRss>http://www.cppblog.com/leetaolion/comments/commentRss/43741.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/leetaolion/services/trackbacks/43741.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 我们现在的开发离测试驱动开发还有很长的路要走。<br>我们能做的是什么呢？<br>是回归测试，开发人员对模块进行回归测试，带着反馈工作，尤其是在添加新功能，修正bug的时候，有了回归测试，就像有了杂技演员的身上有了保险绳，可以放心地在高空中做各种动作。<br>现在该怎么做呢？&nbsp;&nbsp;<a href='http://www.cppblog.com/leetaolion/archive/2008/03/05/43741.html'>阅读全文</a><img src ="http://www.cppblog.com/leetaolion/aggbug/43741.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/leetaolion/" target="_blank">创建更好的解决方案</a> 2008-03-05 13:16 <a href="http://www.cppblog.com/leetaolion/archive/2008/03/05/43741.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>