首頁 > 後端開發 > C++ > 主體

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

DDD
發布: 2024-10-27 22:25:02
原創
342 人瀏覽過

 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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!