在本文中,我們將解決在.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中文網其他相關文章!