技术_程序设计_C++
文章平均质量分 76
ankyhe
N.A
展开
-
C++ Plug-in 技术的一些深度思考(1)
C++ Plug-in 技术的一些深度思考(2) 最近,忙于思考如何重构一个Unix系统。这个系统是由C++写的,重构的思路是希望能够抽取出一些公共的东西,作为Core。另外一些东西做成Plug-in。这样以后如果客户的规范更新了,我们只需要增加修改Plug-in就好了,Core的部分不需要再修改。 要满足这个要求,有些基本的原则: [1] Co...2009-12-02 14:14:30 · 368 阅读 · 0 评论 -
C++ Plug-in 技术的一些深度思考(2)
C++ Plug-in 技术的一些深度思考(1) 我们可以使用动态连接库的技术实现上诉的功能。大方向说,将CalcAdd和CalcMul编译连接成动态连接库,CalcFactory.cpp动态的加载它们。这样的话,可以实现两个功能: [1] 如果更新libCalcAdd.so或者增加一个libCalcMin.so,不需要重新编译,链接,发布主程序calc,只需要重新发布你更新或者增加的s...2009-12-02 14:40:02 · 288 阅读 · 0 评论 -
我对C++复杂性的一些认识
我学习使用C++,已经有差不多7,8年了。从当年在学校写小程序,到后来在公司写程序做设计。从VC++(虽然它不是标准C++),到后来嵌入式的C++,到现在在项目中,标准的C++。坦白说,C++确实很复杂,和Java, Objective-C,Python,Ruby这些语言比,它确实很复杂。这种复杂来自于几个方面:[1] 编程的模式太多。面向过程,基于对象,面向对象,泛型。而且在面向对象的时候,它可...2009-12-13 21:42:53 · 188 阅读 · 0 评论 -
好的面试题和不好的面试题
C++在中国有很大的市场需求,几乎现在找工作,C++和Java还是最大的两块。从以前别人面试我,到我现在面试别人,谈不上什么面经,只能说我觉得的一些好的面试题目,和一些不太好的面试题目。 不好的面试题: [1] 虚函数如何实现的。 在i = 0; ++i++之后,就属这道题最囧了。我被别人问过,我也听过我同事问这个问题。我只想说,这个题绝对不需要问。只要你不实现C++编辑器,这道题对你没...2010-05-26 22:38:11 · 133 阅读 · 0 评论 -
C++多线程的Singleton(1)
C++多线程的Singleton(2) Singleton是我使用过的最多的设计模式,也是日常工作中大家会经常用到的设计模式。其实,在C++里面写一个Singleton,不是一件非常容易的事情,以至于《C++设计新思维》里面花了一章内容专门讲解。难点在哪里呢?其实就是两个: (1)多线程的并发性 (如果你的程序是单线程的,那么就没有这个问题) (2)生命周期 下面我们就开始这个...2011-01-15 00:06:23 · 110 阅读 · 0 评论 -
不要在C++的复杂细节上浪费太多生命,请
今晚在水木上看到一个帖子,我转载一下楼主的问题: class CA { public: void a(){}; }; void fun() { CA a; int n1=sizeof(a); //这里n1是1,为什么? } 大家不要花太多时间去想上面这个问题啊。我知道这个问题有些吸引人,也许未来有一天你去某个知名企业面试,面试官会很得意的问你,这是为什...原创 2011-02-01 01:25:37 · 338 阅读 · 0 评论 -
C++多线程的Singleton(2)
C++多线程的Singleton(1) 如果你的系统有读写锁,恭喜你,也许你可以比较方便的解决这个问题。你可以这么写: // Singleton.h class Singleton { public: ~Singleton(){} static Singleton& getInstance(); private: Si...原创 2011-03-15 23:13:45 · 117 阅读 · 0 评论 -
程序员不要教条主义
记得刚参加工作不久,我写了一个工具,是从文档自动生成代码的工具。那时候比较笨,虽然学了Python,但是完全没想到用Python实现这个工具,是用C++写的。工具很简单,但是帮了我很大的忙。后来找同事Review代码,他给我提了一个中肯的建议。他说,在C/C++里面,应该写成: if (NO_RESULT == rst) 不应该写成: if (rst == NO_RESULT) // 因为你...原创 2011-11-02 06:59:43 · 310 阅读 · 0 评论 -
一些有意思的问题和解答(未完待续)
最近一直在面试,一直觉得面试就是一个交互的过程,在面试中也经常碰到一些自己不会甚至没有听过的问题,把这些问题记录在这里,也顺便Google一下学习一下 ^_^ (这篇文章还在持续更新中,如果有些问题没有回答好,可能还会更新) 1. Python多线程有什么问题? 不知道这个问题的答案,我觉得蛮遗憾的。虽然用了Python两三年了,偶尔也用到multithreading,但是因为一直...2012-02-21 10:16:47 · 153 阅读 · 0 评论