Bolehkah Anda Sebaris Fungsi Ahli Ditakrifkan dalam Fail .cpp?

DDD
Lepaskan: 2024-10-27 22:25:02
asal
342 orang telah melayarinya

 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>
Salin selepas log masuk
<code class="cpp">// File B.h
#include "A.h" // forward declaration

class B {
    inline A getA();
};</code>
Salin selepas log masuk

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>
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!