Breaking Free

  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  1 随笔 :: 0 文章 :: 11 评论 :: 0 Trackbacks
re: 微妙的隐式转换 Arcrest 2006-07-31 12:51
@ff
你可以写个简单的程序测试一下,是可以的
继承型的行为模式

和STL算法模板 + functor思想相似
不过一个编译时静态、一个运行时动态
re: 别了,VC6!!! Arcrest 2006-07-25 12:58
VC6的STL在C++标准化之前,支持得很差
VS.NET后好多了

re: 乱序Policy手法 Arcrest 2006-07-24 12:06
静态的多态还是有用的时候,C++ Modern Design详解
当然项目中的话,维护人员要求高了点。。。

re: 关于static的笔试题及解答 Arcrest 2006-07-13 16:41
static该区分一下C和C++的,因为C++还有类就多了与普通成员的区别,

static函数就知道限制可见范围只在本文件中,C++中推荐用匿名namespace替代,

至于那个普通函数在内存中有拷贝就不知所云了

文学表达很好,
侯捷的书籍受欢迎的原因除了深入浅处的分析外,就是文笔
楼主的技术钻研精神也值得偶们学习
他们都回答了嘛,而且太详细了的说,历史都被搬出来了
两种都可以被编译器接受,只是用实例访问的方式已经不推荐使用了
至于MSDN上那个,也许是写文档的开发人员坚持第二种吧
re: STL 备忘录 Arcrest 2006-07-12 15:47
呵呵,都是Effective STL里面的条目啊
那个12点有点诡异,也容易忘记,不过知道remove的原理就容易记住了
STL里面的heap的几个函数很精辟拉~
re: 谈类的初始化 Arcrest 2006-07-12 15:41
那个参数太长,意思可以考虑把之间有相互关系的参数合并到一个类中作为成员变量,然后传入类的实例

针对接口编程确实才是真正的OOP
用StreamReader/Writer,使得操作配置文件的都针对这个接口来操作,而不关心数据从哪儿来,当然个人觉得,GetValue/SetValue的接口应该和Open/Save分开,打开数据和保存数据的操作一般是开始和结束的,而使用GetValue/SetValue则可能到处都使用,不过还是看你应用了,抽象和分离职责是OOP设计中的最难的。

设计个好的比较通用的配置库确实不容易,以前参考过apache的jakarta commons的Configuration的项目,但是终觉得对C++不适合,缺少的东西太多,人家Java毕竟不只是语言,而更是一个平台。 也看过eMule等开源软件的配置设计,感觉五花八门,什么都有,得出的结论是针对具体的项目写,通用的太难。

以上大侠提到的boost的serialization还没看过,是在io的库中吗?不过boost的都是好东东的说,:)
re: 编程感悟 Arcrest 2006-06-30 15:32
1,关键是抽象吧,设计的难点
2,偶也感觉很头疼的,找不到一个合适的log库,log4cxx等都有好多无法容忍的缺点,自己改写小点吧,又好累~~
3和4,呵呵,Effective C++里面讨论得不少
5,使用文件这种方法很局限,缺点太多,最重要的等于是给这个类强加了一个读取文件的依赖。如果参数太长,应该考虑重构,用类来替代,至于类实例的初始化,从文件读取还是从网络读取,那是新的类的职责了

6,所有变量private,部分变量可以在提供protected或者public的accessor方法

7,很多函数都会需要创建新堆对象,用std::auto_ptr或者boost::shared_ptr吧
2005的Debug运行最近总是提示找不到MSVCR80D.dll,但是Release版本却能找到,楼上的兄弟可知道怎么回事
后来把本来在Assembly下面的相关的文件拷贝到System32目录下面,报错好像是side by side 什么的,无法执行,是不是和manifest有关
如何解决?
谢了先