在Windows Embedded CE开发Native C++时一个继承的误用

这几天一直查一个Wince上的问题,其实和Windows Mobile和Windows Embedded Ce关系不大,但是找到原因也blog下来。

 

我在增加一个新功能,同时修改了设计,把代码重构了,把一个数据成员的对象从子类pull up到父类。从原先的private改成protected。我测试代码,一切正常。可是由于某种原因我的代码是基于tag的基础上开发的,当我commit代码的时候,需要重新switch到branch,然后merge代码。

 

但是自从switch以后,代码运行不正常,开始以为项目配置的原因,因为代码原先是正常的,查了一段时间,我把所有该对象的构造函数全部打印出来,发现同一个对象构造了两次,找到了原因,原因我在switch和merge的时候svn重新把该对象定义的代码放回子类,也就是同一个名字的对象给定义了两次,导致代码运行不正常。

 

经验教训:

以后对版本管理要更加小心,我在提交了上一个版本的基础上就着手开发,所以使用了tag,而不是branch。哪怕做错了,merge版本的时候要小心,不能相信svn的merge功能。

做c++要比c#小心,同样重复定义变量的情况c#在编译时会报错,可是c++不会。

 

posted @   Jake Lin  阅读(524)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
点击右上角即可分享
微信分享提示