C++ 组件开发:从缺陷修复到编译器独立性的探索
1. 缺陷修复与意外问题
客户购买了电视(tv.exe)和录像机(vcr.dll)并开始使用。之后,录像机供应商发现生成信号值的逻辑有误,信号值会随时间不断增大,而规格要求上限为 40。修复方案是每四轮重置一次输出(5, 15, 25, 35 循环)。为了跟踪当前轮次,需要在 CVcr 类中添加一个私有成员变量。
以下是修改后的 CVcr 类代码:
class CVcr
{
public:
CVcr(void);
long GetSignalValue();
private:
long m_lCurValue;
int m_nCurCount;
};
CVcr:: CVcr ()
{
m_lCurValue = 5;
m_nCurCount = 0;
}
long CVcr::GetSignalValue()
{
m_nCurCount++;
if (5 == m_nCurCount ) {
m_lCurValue = 5;
m_nCurCount = 1;
}
long lReturnValue = m_lCurValue;
m_lCurValue += 10;
return lReturnValue;
}
编译代码,创建新的 vcr.dll(版本 2.0)并分发给客户。但客户打开电视时,输出值只在 5 和 15 之间切换,且电视程序本应在 10 次迭代后退出,却陷入了
超级会员免费看
订阅专栏 解锁全文
33

被折叠的 条评论
为什么被折叠?



