Rumah > pembangunan bahagian belakang > C++ > Bilakah Fungsi Ahli Templat Kelas C ODR-Digunakan?

Bilakah Fungsi Ahli Templat Kelas C ODR-Digunakan?

Barbara Streisand
Lepaskan: 2024-12-07 13:24:13
asal
916 orang telah melayarinya

When are C   Class Template Member Functions ODR-Used?

Memahami ODR-Use dalam C

Dalam konteks templat kelas, istilah "odr-use" telah ditemui. Konsep ini memainkan peranan penting dalam memahami instantiasi fungsi ahli dalam templat kelas.

Menurut piawai C [basic.def.odr], pembolehubah atau fungsi digunakan secara odr jika ia digunakan dalam konteks yang memerlukan definisi sebenar dan bukannya pengisytiharan semata-mata. Ini termasuk kes di mana pembolehubah atau fungsi dirujuk secara langsung atau berpotensi dinilai dalam ungkapan. Walau bagaimanapun, pengecualian wujud untuk objek yang boleh mengambil bahagian dalam ungkapan malar dan yang penukaran nilai-ke-nilai digunakan serta-merta.

Untuk fungsi ahli templat kelas, takrifan menjadi lebih khusus: fungsi tidak terbeban (ahli atau sebaliknya) yang dirujuk dalam ungkapan yang berpotensi dinilai atau merupakan sebahagian daripada set calon beban berlebihan adalah digunakan secara tidak wajar melainkan ia adalah fungsi maya tulen dan namanya tidak layak secara eksplisit.

Takrifan ini mungkin menimbulkan persoalan tentang cara peraturan penggunaan ODR digunakan merentas berbilang unit kompilasi. Untuk menjelaskannya, templat kelas dibuat seketika hanya jika ia diperlukan untuk kegunaan ODR dalam sekurang-kurangnya satu unit kompilasi. Sekadar membuat instantiate templat kelas tidak membuat instantiate semua fungsi ahlinya secara automatik melainkan ia digunakan secara odr secara eksplisit.

Ringkasnya, penggunaan ODR ialah konsep yang ditakrifkan dalam standard C untuk menentukan entiti yang memerlukan definisi sebenar. Ia memainkan peranan penting dalam instantiasi templat, dengan fungsi ahli hanya digunakan jika ia digunakan secara tidak wajar dalam unit kompilasi.

Atas ialah kandungan terperinci Bilakah Fungsi Ahli Templat Kelas C ODR-Digunakan?. 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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan