Rumah >pembangunan bahagian belakang >C++ >Apakah Tujuan Pengendali Anak Panah (->) dalam Pengepala Fungsi C?

Apakah Tujuan Pengendali Anak Panah (->) dalam Pengepala Fungsi C?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-13 05:49:02336semak imbas

What is the Purpose of the Arrow Operator (->) dalam Pengepala Fungsi C? 
) dalam Pengepala Fungsi C? " />

Memahami Operator Anak Panah (->) dalam Pengepala Fungsi

Kod yang dimaksudkan memperkenalkan pengendali anak panah (->) dalam tajuk fungsi:

template <typename T, typename T1> auto compose(T a, T1 b) -> decltype(a + b) {
   return a+b;
}

Sintaks ini merujuk kepada sintaks pengisytiharan fungsi alternatif yang diperkenalkan dalam C 11. Ia menyediakan alternatif kepada kaedah tradisional untuk menentukan jenis pulangan:

return-type identifier (argument-declarations...)

Sintaks Pengisytiharan Fungsi

Dua sintaks pengisytiharan fungsi dalam C 11 ialah:

  1. Tradisional Sintaks:

    <return-type> <identifier> (<argument-declarations...>)
  2. Sintaksis Alternatif:

    <auto> <identifier> (<argument-declarations...>) -> <return-type>

Menentukan Jenis Pulangan dengan Dectype

Pengendali anak panah (->) membenarkan untuk mendapatkan jenis pulangan berdasarkan jenis argumen menggunakan decltype membolehkan kami menentukan jenis ungkapan tanpa menyatakannya secara eksplisit.

Dalam contoh yang diberikan, decltype(a b) menentukan. jenis pulangan berdasarkan ungkapan a b. Operator - > ungkapan.

Kemas Kini C 14

C 14 memperkenalkan satu lagi penyederhanaan sintaks:

<auto> <identifier> (<argument-declarations...>)

Ini dibenarkan jika fungsi ditakrifkan sepenuhnya sebelum digunakan dan semua penyata pulangan menyimpulkan kepada jenis yang sama. Walau bagaimanapun, - > sintaks kekal berguna untuk menyembunyikan badan fungsi dalam fail sumber untuk fungsi awam yang diisytiharkan dalam pengepala.

Atas ialah kandungan terperinci Apakah Tujuan Pengendali Anak Panah (->) dalam Pengepala Fungsi C?. 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