在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++不会。
作者:Jake Lin(Jake's Blog on 博客园)
出处:http://procoder.cnblogs.com
本作品由Jake Lin创作,采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。 任何转载必须保留完整文章,在显要地方显示署名以及原文链接。如您有任何疑问或者授权方面的协商,请给我留言。
出处:http://procoder.cnblogs.com
本作品由Jake Lin创作,采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。 任何转载必须保留完整文章,在显要地方显示署名以及原文链接。如您有任何疑问或者授权方面的协商,请给我留言。
分类:
移动开发系列
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架