如果我在虛函數中使用內聯函數會發生什麼?我很困惑與像 http://www.parashift.com/c++-faq-lite/value-vs-ref-semantics.html#faq-31.6虛函數內聯函數會發生什麼情況?
我能理解它的問題,但就是意味着,它將非必要使用虛函數裏面(電話)內聯函數(請假設它是動態調用)?
class Wrapper
{
public:
inline void doInlineJob() {;}
};
class Base
{
virtual void foo()
{
//Do something
}
};
class Derived: public Base
{
void foo()
{
wrapObj.doInlineJob();
}
Wrapper wrapObj;
};
的parashift鏈接似乎被發現在它的解釋給我。哪一點讓你感到困惑?記住內聯是編譯器的_hint_ – zebrabox 2010-02-21 15:33:43
謝謝大家的回覆。 @zebrabox我徘徊doInlineJob()實際上是內聯。 (比如我們在VC++中使用__forceinline) – Morpheus 2010-02-21 15:47:58
@Morpheus。我明白了。正如其他人比我更有說服力和更明確地說,它很可能被內聯,因爲Derived :: foo不是虛擬的 – zebrabox 2010-02-21 16:30:30