Rumah >pembangunan bahagian belakang >C++ >Bolehkah Anda Sebaris Fungsi Ahli Ditakrifkan dalam Fail .cpp?

Bolehkah Anda Sebaris Fungsi Ahli Ditakrifkan dalam Fail .cpp?

DDD
DDDasal
2024-10-27 22:25:02451semak imbas

 Can You Inline Member Functions Defined in .cpp Files?

Meletakkan Definisi Fungsi Ahli Sebaris dalam Fail .cpp

Dalam artikel ini, kami akan menangani dilema untuk melaksanakan fungsi ahli sebaris dalam fail .cpp walaupun mengikut kebiasaan meletakkan mereka dalam pengepala.

Isu timbul daripada kemasukan pekeliling, seperti yang ditunjukkan oleh coretan kod di bawah:

<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>

Disebabkan kebergantungan pekeliling, pelaksanaan getA() mesti diletakkan dalam B.cpp:

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

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

Adakah Pengkompil Sebaris getA?

Tidak, melainkan penggunaan getA() berada dalam B.cpp itu sendiri.

Kepentingan Kata Kunci Sebaris

Kata kunci sebaris dalam takrifan di luar isi kelas adalah paling penting.

Cara Alternatif untuk Mentakrifkan Sebaris Fungsi Ahli dalam Fail .cpp

Malangnya, tiada pendekatan alternatif untuk meletakkan definisi fungsi ahli sebaris dalam fail .cppnya. Piawaian memerlukan pengkompil untuk melihat definisi fungsi di mana sahaja ia dipanggil.

Atas ialah kandungan terperinci Bolehkah Anda Sebaris Fungsi Ahli Ditakrifkan dalam Fail .cpp?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn