Dalam C , aliran standard cout, cerr, cin, dan endl boleh menyusahkan untuk digunakan dengan std tetap:: awalan. Untuk mengurangkan isu ini, seseorang mungkin mempertimbangkan untuk membuat pembungkus tersuai dengan nama yang lebih pendek.
Satu pendekatan yang mungkin ditunjukkan oleh perpustakaan STLWrapper:
STLWrapper.h mentakrifkan rujukan luaran kepada objek aliran standard dengan lebih pendek nama:
extern std::ostream& Cout; extern std::ostream& Cerr; extern std::istream& Cin; extern std::string& Endl;
STLWrapper.cpp menyediakan takrifan sebenar untuk rujukan ini:
std::ostream& Cout = std::cout; std::ostream& Cerr = std::cerr; std::istream& Cerr = std::cin; std::string _EndlStr("\n"); std::string& Endl = _EndlStr;
Walaupun pendekatan ini betul dari segi fungsi, ia menimbulkan beberapa kebimbangan:
Menggunakan nama yang lebih pendek untuk objek standard meningkatkan risiko perlanggaran nama dengan pengecam yang ditentukan pengguna. Jika kod anda mentakrifkan Cout atau Endlnya sendiri, ini secara tidak sengaja boleh mengatasi rujukan kepada strim standard.
Walaupun memendekkan awalan mungkin kelihatan mudah, ia sebenarnya boleh mengurangkan kebolehbacaan kod. Awalan std:: menyediakan konteks eksplisit untuk objek perpustakaan standard, menjadikannya lebih mudah untuk mengesan penggunaannya dan mengenal pasti isu yang berpotensi.
Daripada menggunakan pembungkus, pertimbangkan alternatif berikut:
Walaupun menyesuaikan objek strim standard mungkin kelihatan menarik pada mulanya, perkara ini penting untuk mempertimbangkan potensi pertukaran. Risiko yang berlebihan, kebolehbacaan yang berkurangan dan kekurangan faedah yang ketara menjadikan pendekatan alternatif lebih digalakkan.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menyesuaikan Objek Strim Standard C Tanpa Memperkenalkan Risiko?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!