首页 相关文章 C++箴言:绝不在构造或析构期调用虚函数

C++箴言:绝不在构造或析构期调用虚函数

你不应该在构造或析构期间调用虚函数,因为这样的调用不会如你想象那样工作,而且它们做的事情保证会让你很郁闷。如果你转为 Java 或 C# 程序员,也请你密切关注本文,因为在 C++ 急转弯的地方,那些语言也紧急转了一个弯。

  假设你有一套模拟股票处理的类层次结构,例如,购入流程,出售流程等。对这样的处理来说可以核查是非常重要的,所以随时会创建一个 Transaction 对象,将这个创建记录在核查日志中是一个适当的要求。下面是一个看起来似乎合理的解决问题的方法:

class Transaction { // base class for all
  public: // transactions
   Transaction();

   virtual void logTransaction() const = 0; // make type-dependent
   // log entry
   ...
};

Transaction::Transaction() // implementation of
{
[ 查看全文 ]

2016-02-19 标签:

C++箴言:绝不在构造或析构期调用虚函数的相关文章

手机页面
收藏网站 回到头部