Operator Penyisipan dan Pengekstrakan Strim
Jadikan jenis anda saling beroperasi dengan std::cout melalui >.
Operator Penyisipan dan Pengekstrakan Strim ialah pelajaran C++ Academy percuma di CoddyKit. Ini ialah pelajaran 2 daripada 4. Sebanyak 3 pelajaran dalam laluan pembelajaran ini boleh dibaca sepenuhnya secara percuma — selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan praktikal dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran C++ Academy, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus C++ Academy merangkumi sejumlah 4 pelajaran.
Mengapa Membebankan Lebih << dan >>
Ajarkan jenis anda berinteraksi dengan std::cout dan std::cin dengan membebankan lebih operator aliran.
Operator Penyisipan <<
Takrifkannya sebagai fungsi bebas yang menerima aliran keluaran melalui rujukan. Pulangkan aliran tersebut untuk membolehkan rantaian operasi.
struct Point { int x, y; };
std::ostream& operator<<(std::ostream& os, const Point& p) {
return os << "(" << p.x << ", " << p.y << ")";
}
Point p{3, 4};
std::cout << p << "\n"; // (3, 4)Mengapa Fungsi Bebas?
Jika anda menulisnya sebagai ahli, operan kiri mestilah Point — mustahil kerana kita memerlukan std::ostream di sebelah kiri. Fungsi bebas menyokong kedua-dua susunan.
Operator Pengekstrakan >>
Takrifkannya untuk membaca daripada aliran masukan. Sahkan masukan dan tetapkan failbit jika berlaku kegagalan.
std::istream& operator>>(std::istream& is, Point& p) {
char open, comma, close;
is >> open >> p.x >> comma >> p.y >> close;
if (open != '(' || comma != ',' || close != ')')
is.setstate(std::ios::failbit);
return is;
}Menetapkan Keadaan Kegagalan Aliran
Jika penghuraian gagal, panggil is.setstate(std::ios::failbit). Pemanggil boleh mengesan kegagalan dengan !is atau is.fail().
Pengisytiharan Friend
Jika operator memerlukan akses kepada ahli peribadi, isytiharkannya sebagai friend di dalam kelas.
class Point {
int x_, y_;
public:
friend std::ostream& operator<<(std::ostream& os, const Point& p);
};Jenis Aliran Bertemplat
Untuk kemudahalihan maksimum, gunakan templat pada jenis aksara. Ini berguna untuk aliran aksara lebar.
template <typename CharT>
std::basic_ostream<CharT>& operator<<(
std::basic_ostream<CharT>& os, const Point& p) {
return os << "(" << p.x << ", " << p.y << ")";
}Rantaian Operasi
Memulangkan aliran membolehkan pengguna merantaikan operasi.
std::cout << "Result: " << point << ", distance: " << dist;Pemformatan Tersuai
Gunakan std::ios::fmtflags atau std::format C++20 untuk pemformatan lanjutan. Aliran lebih mudah tetapi lebih sukar disesuaikan dengan bahasa setempat.
Keluaran Gaya JSON
Anda boleh menggabungkan pilihan pemformatan dalam operator anda. Untuk keluaran kompleks, tulis fungsi pembantu.
Membaca Berbilang Baris
Gunakan std::getline untuk bacaan berasaskan baris, kemudian huraikan dengan stringstream — ini memastikan operator>> anda ringkas.
Petua Prestasi
Untuk pengelogan dengan kadar pemprosesan yang sangat tinggi, utamakan pustaka khusus (spdlog, fmt) — prestasinya jauh lebih baik daripada aliran.
Semakan Pantas
Mengapakah operator<< untuk jenis takrifan pengguna ditakrifkan sebagai fungsi bebas dan bukannya ahli?
Imbas Kembali
Bebankan lebih operator<< dan operator>> sebagai fungsi bebas yang menerima aliran melalui rujukan. Pulangkan aliran tersebut untuk membolehkan rantaian operasi. Tetapkan failbit apabila berlaku ralat penghuraian. Gunakan friend apabila akses peribadi diperlukan.
Pelajari C++ dengan tutor kecerdasan buatan — percuma
Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.
- Kursus
- 51
- Pelajaran
- 203
Soalan Lazim
Adakah pelajaran “Operator Penyisipan dan Pengekstrakan Strim” percuma?
Ya — sebanyak 3 pelajaran dalam laluan pembelajaran C++ Academy, termasuk “Operator Penyisipan dan Pengekstrakan Strim”, boleh dibaca sepenuhnya secara percuma di web ini. Selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan interaktif dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Kursus C++ Academy merangkumi sejumlah 4 pelajaran.
Apakah yang akan saya pelajari dalam “Operator Penyisipan dan Pengekstrakan Strim”?
Jadikan jenis anda saling beroperasi dengan std::cout melalui >. Anda berlatih C++ Academy menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.
Adakah saya memerlukan pengalaman untuk memulakan C++ Academy?
Tiada pengalaman terdahulu diperlukan. Pembelajaran C++ Academy di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 2 daripada 4.
Berapa lamakah pelajaran “Operator Penyisipan dan Pengekstrakan Strim” diambil?
Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.
Bolehkah saya menulis dan menjalankan kod dalam pelajaran C++ Academy ini?
Ya. Setiap pelajaran C++ Academy menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.
Semua pelajaran dalam kursus ini
- Operator Aritmetik dan Perbandingan
- Operator Penyisipan dan Pengekstrakan Strim
- Operator Subskrip dan Panggilan Fungsi
- Operator Perbandingan Tiga Hala C++20