首頁  >  文章  >  後端開發  >  可以內聯 .cpp 檔案中定義的成員函數嗎?

可以內聯 .cpp 檔案中定義的成員函數嗎?

DDD
DDD原創
2024-10-27 22:25:02343瀏覽

 Can You Inline Member Functions Defined in .cpp Files?

將內聯成員函數定義放置在.cpp 檔案中

在本文中,我們將解決在.cpp 檔案中實現內聯成員函數的困境,儘管存在放置的約定

問題是由循環包含引起的,如下面的程式碼片段所示:

<code class="cpp">// File A.h
#include "B.h"

class A {
    B b;
};</code>
<code class="cpp">// File B.h
#include "A.h" // forward declaration

class B {
    inline A getA();
};</code>

由於循環依賴, getA() 的實作必須放在B.cpp 中:

<code class="cpp">// File B.cpp
#include "B.h"
#include "A.h"

inline A B::getA() {
    return A();
}</code>

編譯器會內聯getA 嗎?

不會,除非 getA() 的使用是在 B.cpp 本身內。

內嵌關鍵字的重要性

類體外部定義中的 inline 關鍵字最重要。

定義內聯的其他方法.cpp 檔案中的成員函數

不幸的是,沒有其他方法可以將內聯成員函數的定義放在其. cpp 檔案中。這個標準要求編譯器無論在哪裡呼叫它都可以看到函數定義。

以上是可以內聯 .cpp 檔案中定義的成員函數嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn