Penghuraian Paling Menjengkelkan: Menjelaskan Butiran Mengelirukan
Dalam pengaturcaraan, "Penghuraian Paling Menjengkelkan" merujuk kepada kekaburan yang terkenal dalam sintaks C yang boleh membawa kepada pengisytiharan fungsi yang tidak dijangka. Artikel ini bertujuan untuk merungkai satu aspek yang mengelirukan dalam Parse Paling Menjengkelkan.
Pertimbangkan baris kod berikut:
vector<int> v(istream_iterator<int>(cin), istream_iterator<int>());
Bagaimanakah baris ini boleh dihuraikan sebagai pengisytiharan fungsi?
Memahami Sintaks
Biasanya, masalah Parse Paling Menjengkelkan timbul apabila objek sementara kedua ditafsirkan sebagai fungsi mengembalikan lelaran dan tidak mengambil hujah. Walau bagaimanapun, dalam kes ini, objek sementara pertama, istream_iterator
Objek sementara pertama, istream_iterator
Tafsiran
Pengkompil mentafsirkan istream_iterator
Oleh itu, baris kod ditafsirkan sebagai pengisytiharan fungsi dengan satu parameter, cin, iaitu jenis istream_iterator
Kurungan Arbitrari dalam Senarai Argumen
Kurungan di sekeliling cin dalam istream_iterator
Kesimpulan
Kunci untuk memahami kes ini ialah mengenali bahawa perkara yang berlebihan kurungan tidak mengubah maksud pernyataan. Tafsiran istream_iterator
Atas ialah kandungan terperinci Bagaimanakah `vektor v(istream_iterator(cin), istream_iterator());` Boleh Ditafsirkan sebagai Pengisytiharan Fungsi dalam C ?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!