Rumah >pembangunan bahagian belakang >C++ >Mengapakah Itanium C ABI Memancarkan Simbol Dwi Pembina?

Mengapakah Itanium C ABI Memancarkan Simbol Dwi Pembina?

Barbara Streisand
Barbara Streisandasal
2024-11-21 17:26:12732semak imbas

Why Does the Itanium C   ABI Emit Dual Constructor Symbols?

Pancaran Dwi Simbol Pembina

Penjelasan: Itanium C ABI

Itanium C ABI menentukan kekacauan nama fungsi untuk memasukkan maklumat tentang parameternya dan kefungsian. Nama pembina mengikut corak tertentu:

_Z     | N      | <class_name>  | <ctor-type>          | E          | <parameters>
prefix | nested | `Thing` | Constructor | end nested | parameters: `int`

Simbol Dwi

Simbol pembina dalam perpustakaan muncul dua kali disebabkan oleh jenis pembina yang berbeza yang dipancarkan oleh GCC:

  • C1: Pembina objek lengkap - Membina objek lengkap, termasuk pangkalan maya kelas.
  • C2: Pembina objek asas - Mencipta objek itu sendiri dan memulakan ahli data dan kelas asas bukan maya.

Polymorphism and Base Constructors

Walaupun kelas berkenaan tidak mempunyai kelas asas maya, GCC masih mengeluarkan kedua-dua pembina sebagai hasil sampingan menyokong polimorfisme. Jika polimorfisme tidak terlibat, GCC boleh mengoptimumkan dengan mengeluarkan hanya satu pembina.

Perbezaan Nama Simbol

Kedua-dua pembina mempunyai nama yang berbeza kerana penunjuk C1 dan C2 dalam nama yang rosak, yang menunjukkan pelbagai jenis pembinaan yang mereka lakukan.

Kesimpulan

Pancaran dwi simbol pembina adalah akibat daripada Itanium C ABI dan sokongan untuk polimorfisme, tetapi ia boleh dioptimumkan oleh GCC apabila polimorfisme tidak digunakan.

Atas ialah kandungan terperinci Mengapakah Itanium C ABI Memancarkan Simbol Dwi Pembina?. 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