Dengan pengenalan C 11, pembangun memperoleh set pilihan sintaks baharu untuk memulakan kelas, menambah kepada yang sedia ada. pemula yang disertakan dengan pendakap. Pelbagai pilihan ini telah memberikan dilema yang membingungkan: bila hendak menggunakan setiap pilihan sintaks?
Garis panduan yang disediakan menunjukkan bahawa jika niatnya adalah untuk memberikan nilai yang tepat kepada objek , pemulaan salinan (=) harus diutamakan. Ini kerana ia meminimumkan risiko secara tidak sengaja menggunakan pembina eksplisit dengan semantik yang berpotensi berbeza. Pemula pendakap hendaklah dipertimbangkan jika pemulaan salinan tidak tersedia dan pemulaan kurungan hendaklah digunakan sebagai pilihan terakhir.
Pemulaan pendakap kerinting cemerlang apabila memulakan dengan berbilang nilai yang bertujuan untuk disimpan dalam objek. Sintaks ini amat sesuai untuk vektor, tatasusunan dan nombor kompleks.
Apabila nilai yang disediakan semasa pemulaan menerangkan keadaan atau gelagat objek yang dimaksudkan dan bukannya data sebenarnya , permulaan kurungan harus digunakan. Ini selalunya berlaku dengan hujah yang menyatakan saiz atau nama fail.
Pertimbangkan coretan kod berikut:
<code class="cpp">{ // Example 1 int b(1); // Copy initialization for exact value int a{1}; // Brace initialization for stored value int c = 1; // Parentheses initialization for descriptor value (e.g., size) int d = {1}; // Brace initialization for stored value }</code>
<code class="cpp">{ // Example 4 std::function<int(int,int)> a(std::plus<int>()); // Copy initialization for callback function std::function<int(int,int)> b{std::plus<int>()}; // Brace initialization for callback function, likely unwanted }</code>
Dengan mengikuti garis panduan yang dicadangkan , pembangun boleh menavigasi kerumitan sintaks pemula C 11 dengan yakin, memastikan kod mereka tepat dan cekap.
Atas ialah kandungan terperinci Bagaimana untuk Memilih Sintaks Pemula C 11 yang Betul dan Bila Menggunakannya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!