1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 避免构造/析构函数调用虚函数

避免构造/析构函数调用虚函数

时间:2020-01-14 03:17:44

相关推荐

避免构造/析构函数调用虚函数

不要在类的构造或者析构函数中调用虚函数,因为这种调用不会如你所愿,即使成功一点,最后还会使你沮丧不已。如果你以前是一个Java或者C#程序员,请密切注意本节的内容-这正是C++与其它语言的大区别之一。

假设你有一个为股票交易建模的类层次结构,例如买单,卖单,等等。为该类交易建立审计系统是非常重要的,这样的话,每当创建一个交易对象,在审计登录项上就生成一个适当的入口项。这看上去不失为一种解决该问题的合理方法:

class Transaction {// 所有交易的基类

public:

Transaction();

virtual void logTransaction() const = 0;//建立依赖于具体交易类型的登录项

...

};

Transaction::Transaction() //实现基类的构造函数

{

...

logTransaction(); //最后,登录该交易

}

class BuyTransaction: public Transaction {

// 派生类

public:

virtual void logTransaction() const; //怎样实现这种类型交易的登录?

...

};

class SellTransaction: public Transaction {

//派生类

public:

virtual void logTransaction() const; //怎样实现这种类型交易的登录?

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。