相关分类: Java技术 C/C++ VB delphi
  • C 箴言:绝不在构造或析构期调用虚函数

    您不应该在构造或析构期间调用虚函数,因为这样的调用不会如您想象那样工作,而且他们做的事情确保会让您很郁闷。假如您转为 Java 或 C# 程式员,也请您密切关注本文,因为在 C 急转弯的地方,那些语言也紧急转了一个弯。 假设您有一套模拟股票处理的类层次结构,例如...

    2008-02-23 05:40:47

  • C 箴言:声明为非成员函数时机

    我谈到让一个类支持隐式类型转换通常是个不好的主意。当然,这条规则有一些例外,最普通的一种就是在创建数值类型时。例如,假如您设计一个用来表现有理数的类,允许从整数到有理数的隐式转换看上去并非不合理。这的确不比 C 的内建类型从 int 到 double 的转换更不合...

    2008-02-23 05:40:46

  • C 箴言:视类设计为类型设计

    在 C 中,就像其他面向对象编程语言,能够通过定义一个新的类来定义一个新的类型。作为一个 C 研发者,您的大量时间就这样花费在增大您的类型系统。这意味着您不但仅是个类的设计者,而且是个类型的设计者。重载函数和运算符,控制内存分配和回收,定义对象的初始化和...

    2008-02-23 05:40:46

  • C 箴言:了解C 偷偷加上和调用了什么

    几乎每一个您自己写的类都会有一个或多个构造函数,一个析构函数和一个拷贝赋值运算符。不要惊奇,那是些就像您的面包黄油相同的函数,他们控制着基本的操作,如创建一个新的对象并确保已被初始化,消除一个函数并确保他被完全清除,连同为对象赋予一个新值。这些函数...

    2008-02-23 05:40:45

  • C 箴言:拒绝不想用的编译器产生的函数

    假如您不想使用编译器为您产生的函数,就明确拒绝 不动产代理商出售房屋,服务于这样的代理商的软件系统自然要有一个类来表示被出售的房屋: class HomeForSale { ... }; 每一个不动产代理商都会很快指出,每一件财产都是独特的——没有两件是完全相同的。在这种情况下...

    2008-02-23 05:40:45

  • C 箴言:多态基类中将析构函数声明为虚拟

    有很多方法能够跟踪时间的轨迹,所以有必要建立一个 TimeKeeper 基类,并为不同的计时方法建立派生类: class TimeKeeper { public: TimeKeeper(); ~TimeKeeper(); ... }; class AtomicClock: public TimeKeeper { ... }; class WaterClock: public TimeKeeper { ... }...

    2008-02-23 05:40:45

  • C 箴言:防止因异常而离开析构函数

    C 并不禁止从析构函数中引发异常,但是这确实妨碍了实践。至于有什么好的理由,考虑: class Widget { public: ... ~Widget() { ... } // assume this might emit an exception }; void doSomething() { std::vectorWidget v; ... } // v is automatically destroyed h...

    2008-02-23 05:40:44

  • 深入分析Windows和Linux动态库应用异同

    摘要:动态链接库技术实现和设计程式常用的技术,在Windows和Linux系统中都有动态库的概念,采用动态库能够有效的减少程式大小,节省空间,提高效率,增加程式的可扩展性,便于模块化管理。 但不同操作系统的动态库由于格式 不同,在需要不同操作系统调用时需要进行动态...

    2008-02-23 05:40:43

  • C 箴言:谨慎考虑资源管理类的拷贝行为

    在上一篇文章中介绍了作为资源管理类支柱的 Resource Acquisition Is Initialization (RAII) 原则,并描述了 auto_ptr 和 tr1::shared_ptr 在基于堆的资源上运用这一原则的表现。并非任何的资源都是基于堆的,然而,对于这样的资源,像 auto_ptr 和 tr1::shared_ptr 这...

    2008-02-23 05:40:43

  • 怎样实现动画背景旗帜

    以下代码是关于用类CmdiMainClient来显示动画背景旗帜的一个例子。原理是很简单的,我们只需要一系列连续的位图,并且让他连续显示。在这个例子中您能够用鼠标的右键来开始/停止这个动画,假如点左键的话,就能够显示一个子窗口,来保持动画是继续。为了您的方便,您能...

    2008-02-23 05:40:42

2