设为首页 加入收藏

TOP

表驱动与工厂模式(二)
2015-07-20 18:07:51 来源: 作者: 【 】 浏览:53
Tags:驱动 工厂 模式
构造函数语义学,一个类仅在下列四种情况下自动生成构造函数:

1> 如果一个类没有任何构造函数,但它的一个成员内部有默认构造函数,那么这个类也需要生成默认构造函数,不过这个操作仅在构造函数被调用时才会发生。

2> 当基类含有默认构造函数时,子类如果没有任何构造函数,则需合成默认构造函数。

3> 当类含有虚函数时,如果没有定义任何构造函数,则需合成默认构造函数。

4> 当类有虚继承时,如果没有定义任何构造函数,则需合成默认构造函数。

其实上面前两点是依赖于后两点的,为什么呢?看第一点和第二点,其都要求父类或者成员中包含默认构造,首先,认为声明的构造函数不叫默认构造;其次,既然存在默认构造,那么肯定是第三点或者第四点造成的。所以说第一点和第二点依赖于后两点。

所以说,下面这个类是没有构造函数的,包括默认构造函数:

class Product
{
public:
         int m_IntVal;
};

那么要去通过一个指向Memberfunction的指针指向构造函数,肯定是失败的,所以编译器禁止指向构造函数的指针,并提示消息:

Error:a constructor or destructor may not have its address taken

进一步思考

首先,表驱动方法是必须掌握的一个技巧,使用它将带来程序效率上的提升,代码的整洁等等各个方面的好处。

其次,工程的管理必须进行相关方面标准的定义及控制,使用SourceMonitor等工具把握项目质量至关重要。这周员工培训上,听老韩这么多年经验的总结,让我深深认识了“没有银弹”这个深刻的道理,在“银弹”没有造出来的前提下,任何过程都必须严格控制,否则将陷入无穷无尽的“焦油坑”。

第三,继续给自己多挖几个坑吧,如果一直走平地,貌似永远也登不上高峰,因为同往高峰的路永远没有平路。

参考书目

《代码大全第二版》 Steve McConnell

《STL源码剖析》侯捷

《重构:改善既有代码的设计》Martin Fowler

《设计模式:可复用面向对象软件的基础》GoF四人帮

《大话设计模式》程杰

《深度探索C++对象模型》Stanley B.Lippman

《人月神话》Frederick P.Brooks.Jr.

首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇uva442-Matrix Chain Multiplicat.. 下一篇Light OJ 1411 Rip Van Winkle`s ..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: