文章转载
mypsl
这个作者很懒,什么都没留下…
展开
-
编程如禅——工厂模式的智能化实现(c++)(2)消灭switch/case语句以及由名字创建对象
由名字创建对象其实的有挺强的背景,那就是软件工程学中的对象持久性问题。本文讨论的方法也是持久性的一个可能实现。废话少说,看看C++是怎么做的。 动态创建当然要用指针。我们不希望在程序中出现硬编码: Shape * pShape = new Circle; 那就用函数/对象包装一下。函数包装简单、高效一些。于是有Circle类的成员函数: Shape *createI转载 2006-07-13 14:44:00 · 974 阅读 · 0 评论 -
宏实现根据对象名创建对象
1. 问题提出:C++ RTTI缺乏一些运行时信息,无法根据对象名直接创建对象。所以MFC为了实现序列化,从头构造了自己的RTTI信息,并定义了一整套宏。具体可以参考MFC源代中一下类和宏的实现:CRuntimeClass, CObject, DECLARE_DYNAMIC, IMPLEMENT_DYNAMIC2. 需求:个人正在写一个做集成测试的工具,有一个配置文件,用于指定哪些CASE转载 2006-07-13 14:47:00 · 1211 阅读 · 0 评论 -
gcc和g++的区别
gcc和g++的区别<br />我们在编译c/c++代码的时候,有人用gcc,有人用g++,于是各种说法都来了,譬如c代码用gcc,而c++代码用g++,或者说编译用gcc,链接用g++,一时也不知哪个说法正确,如果再遇上个extern "C",分歧就更多了,这里我想作个了结,毕竟知识的目的是令人更清醒,而不是更糊涂。 误区一:gcc只能编译c代码,g++只能编译c++代码<br />两者都可以,但是请注意:1.后缀为.c的,gcc把它当作是C程序,而g++当作是c++程序;后转载 2010-09-04 13:15:00 · 288 阅读 · 0 评论