Rumah Keuangan Pribadi 8 C ++ Fitur Not-So-Beginner - dummies

8 C ++ Fitur Not-So-Beginner - dummies

Daftar Isi:

Video: Introduction to programming || C Programming Tutorial Beginner to Advanced 2024

Video: Introduction to programming || C Programming Tutorial Beginner to Advanced 2024
Anonim

Bahasa C ++ berisi begitu banyak fitur yang mungkin tidak dapat dimengerti oleh pemrogram awal. Untungnya, Anda tidak perlu menguasai semua fitur bahasa untuk menulis program dunia nyata yang hebat. Berikut adalah sepuluh fitur yang mungkin ingin Anda lihat, kalau-kalau Anda melihatnya di program orang lain.

Perintah C ++ goto

Perintah ini berjalan sampai kembali ke C, nenek moyang dari C ++. Pada prinsipnya, menggunakan perintah ini mudah dilakukan. Anda bisa menempatkan label goto; dimanapun kamu mau. Saat C ++ menemukan perintah ini, kontrol langsung lolos ke label, seperti yang ditunjukkan pada cuplikan kode ini:

untuk (;;) {if (ekspresi kondisional) {goto outahere;} // … apapun yang anda mau …} outahere: // … program berlanjut disini …

Dalam praktiknya, goto mengenalkan banyak cara untuk mengacaukan. Bagaimanapun, tidak butuh waktu lama sebelum programmer memperhatikan bahwa dua penggunaan goto yang paling umum adalah untuk keluar dari loop dan menuju ke kasus berikutnya dalam satu lingkaran. Komite Standar C memperkenalkan break dan continue dan hampir sepenuhnya menghilangkan kebutuhan akan perintah goto.

Operator terner

adalah operator yang unik untuk C dan C ++. Ia bekerja sebagai berikut: int n = (bersyarat)? expression1: expression2;

itu? operator pertama mengevaluasi kondisional. Jika kondisinya benar, maka nilai ungkapannya sama dengan nilai ekspresi1; Jika tidak, itu sama dengan nilai ekspresi2.

Misalnya, Anda bisa menerapkan fungsi maksimum () sebagai berikut:

int max (int n1, int n2) {return (n1> n2)? n1: n2;}
Operator terner dapat diaplikasikan pada jenis numerik namun tidak dapat kelebihan beban. Operator terner benar-benar sebuah ungkapan - bukan pernyataan kontrol seperti if.

Jenis yang dicacah di C + +

Gagasan sederhananya adalah Anda dapat mendefinisikan konstanta dan membiarkan C ++ menugaskan nilai mereka, seperti yang ditunjukkan di sini:

enum Colour {BLACK, BLUE, GREEN, YELLOW, RED}; Warna myColor = BLACK;

Masalah dengan jenis yang disebutkan di sini terletak pada penerapannya: Daripada membuat jenis yang benar, C ++ menggunakan bilangan bulat. Dalam kasus ini, BLACK diberi nilai 0, BLUE diberi 1, GREEN2, dan seterusnya.

Perpustakaan Standar 2011 untuk C ++ "memperbaiki" masalah ini dengan membuat jenis kelas yang disebutkan seperti yang ditunjukkan pada cuplikan berikut:

kelas enum Warna {BLACK, BLUE, GREEN, YELLOW, RED}; Warna myColor = Warna:: BLACK;

Pada versi ini, Warna adalah tipe baru.Masing-masing konstanta, BLACK, BLUE, dan sebagainya, adalah anggota tipe Colors. Anda masih bisa melemparkan objek Warna kelas ke int, tapi pemeran implisit tidak diijinkan.

C + + namespaces

Mungkin untuk memberikan entitas yang berbeda dalam dua pustaka yang berbeda dengan nama yang sama. Misalnya, fungsi kelas () di perpustakaan Pelajar mungkin memberi nilai, sedangkan fungsi kelas () di perpustakaan CivilEngineering dapat mengatur kemiringan di sisi bukit. Untuk menghindari masalah ini, C ++ memungkinkan programmer untuk menempatkan kodenya di ruang nama yang terpisah. Dengan demikian kelas dalam ruang nama Siswa berbeda dari kelas dalam CivilEngineering.

Ruang nama di atas dan di luar nama kelas. Fungsi kelas () anggota kelas BullDozer di namespace CivilEngineering memiliki nama extended CivilEngineering:: BullDozer:: grade ().

Semua objek dan fungsi perpustakaan ada di ruang nama std. Pernyataan di awal template program menggunakan namespace std; mengatakan bahwa jika Anda tidak melihat objek yang ditentukan dalam namespace default, maka lihatlah di std.

Fungsi virtual murni di C ++

Anda tidak perlu mendefinisikan fungsi yang dideklarasikan secara virtual. Fungsi undefined seperti itu dikenal sebagai fungsi anggota virtual murni

. Pada saat itu, bagaimanapun, hal menjadi rumit. Misalnya, kelas dengan satu atau lebih fungsi virtual murni dikatakan abstrak dan tidak bisa digunakan untuk membuat objek. Tangani masalah ini setelah Anda merasa nyaman dengan fungsi virtual dan terlambat mengikat. Kelas string C ++

Kebanyakan bahasa menyertakan kelas string sebagai tipe intrinsik untuk menangani string karakter dengan mudah. Secara teori, kelas string harus melakukan hal yang sama untuk C ++. Namun, dalam praktiknya, itu tidak sesederhana itu. Karena string bukanlah tipe intrinsik, pesan kesalahan yang dihasilkan oleh compiler saat terjadi kesalahan lebih mirip dengan yang terkait dengan kelas yang ditentukan pengguna. Bagi pemula, pesan ini bisa sangat sulit untuk ditafsirkan. String

bahkan bukan kelas. Ini adalah contoh kelas template. Pesan error bisa jadi menakjubkan.

Beberapa pewarisan di C ++

Satu kelas benar-benar dapat memperpanjang lebih dari satu kelas dasar. Ini terdengar sederhana namun bisa menjadi sangat rumit ketika kedua kelas dasar tersebut berisi fungsi anggota dengan nama yang sama. Yang lebih buruk lagi adalah ketika kedua kelas dasar itu sendiri merupakan subkelas dari beberapa kelas umum.

Sebenarnya, begitu banyak masalah muncul bahwa C ++ adalah satu bahasa mirip C yang mendukung multiple inheritance. Java dan C #, kedua bahasa yang berasal dari C ++, memutuskan untuk menjatuhkan dukungan untuk multiple inheritance.

C ++ template dan Perpustakaan Template Standar

Pembuat C ++ melihat bagaimana fungsi serupa seperti berikut ini:

int max (int n1, int n2) {if (n1> n2) {return n1;} return n2;} double max (double n1, double n2) {if (n1> n2) {return n1;} return n2;} char max (char n1, char n2) {if (n1> n2) {return n1;} return n2;}

"Tidakkah itu keren," kata seseorang kepada yang lain, "jika Anda bisa mengganti tipe itu dengan tipe pseudo-tipe yang dapat Anda tentukan pada waktu kompilasi?"Sebelum Anda menyadarinya, template presto menjadi bagian dari template C ++:

T max (T t1, T t2) {if (t1> t2) {return t1;} return t2;}

Sekarang pemrogram dapat buat max (int, int) dengan mengganti T dengan int dan kompilasi hasilnya, buat max (double, double) dengan mengganti T dengan double, dan sebagainya. Komite Standar bahkan merilis keseluruhan perpustakaan kelas, yang dikenal sebagai Perpustakaan Template Standar (STL untuk jangka pendek), berdasarkan kelas template.

Bagi pemula, subjek kelas template mulai sintaksis sangat rumit. Selain itu, kesalahan yang dihasilkan oleh compiler saat Anda mendapatkan template Instansiasi yang salah membingungkan seorang ahli, apalagi pemula. Ini jelas topik yang perlu ditunggu sampai Anda merasa nyaman dengan bahasa dasarnya.

8 C ++ Fitur Not-So-Beginner - dummies

Pilihan Editor

Bertahan dalam Zombie Sieges di Minecraft - dummies

Bertahan dalam Zombie Sieges di Minecraft - dummies

Bermasalah dengan zombie yang menyerang desa Anda pada malam hari di Minecraft? Pelajari bagaimana untuk membela diri, menyembuhkan penduduk desa zombie, dan pulihkan dunia Anda!

Zaman Batu di Minecraft - dummies

Zaman Batu di Minecraft - dummies

Tonggak penting dalam mode Minecraft Survival, dan yang dicapai oleh beberapa pemain di Hari pertama, mencapai Zaman Batu. Setelah Anda membuat pickax kayu dan Anda bisa menemukan gua atau menggali lubang, item dalam tabel berikut tersedia untuk Anda. Sebagian besar bahan berbasis batu lebih padat dari yang lain ...

Zaman Looting di Minecraft - dummies

Zaman Looting di Minecraft - dummies

Anda mencapai Usia Looting di Minecraft di awal permainan - kadang-kadang, bahkan paralel untuk mencapai Era Kayu. Anda mulai dengan membunuh musuh untuk menjarah, dan dengan menggunakan jarahan untuk memperbaiki repertoar kerajinan Anda. Lebih banyak item kemudian tersedia bagi Anda, seperti tercantum dalam tabel. Semua alat meningkatkan jumlah ...

Pilihan Editor

Infografis tepat waktu: Berbagi Breaking News - dummies

Infografis tepat waktu: Berbagi Breaking News - dummies

Walaupun infografik Anda tidak mungkin menjadi satu-satunya sumber berita, Ini bisa membantu pemahaman pembaca akan sebuah acara berita. Misalnya, banyak orang belajar di Twitter pada bulan Oktober, 2011 bahwa pendiri Apple Steve Jobs telah meninggal dunia. Infografis tidak akan menjadi orang pertama yang mendengarnya. Tapi orang-orang ...

Pilihan Editor

GED Contoh Pertanyaan: Pertanyaan Ilmu Fisik - dummies

GED Contoh Pertanyaan: Pertanyaan Ilmu Fisik - dummies

Ketika Anda mencapai bagian Sains GED, Anda akan diharapkan memiliki pengetahuan umum di semua cabang Ilmu Pengetahuan, termasuk Ilmu Fisika. Berikut adalah contoh jenis pertanyaan yang mungkin Anda hadapi pada hari ujian. Kecepatan dan Kecepatan Ada perbedaan antara kecepatan dan kecepatan, meskipun terkadang Anda ...

Latihan GED RLA: Reading Comprehension - dummies

Latihan GED RLA: Reading Comprehension - dummies

Cara terbaik untuk mempersiapkan bagian pemahaman bacaan GED Tes RLA adalah melakukan sebanyak mungkin pertanyaan latihan. Simak sampel untuk melihat apa yang akan Anda hadapi pada hari ujian. Contoh Pertanyaan Pertanyaan 1-6 mengacu pada bagian berikut. Fasilitas untuk Akses ke Perusahaan Kreatif (FACE) Awalnya didirikan ...

GED Penalaran melalui Latihan Keterampilan Membaca Bahasa Seni - dummies

GED Penalaran melalui Latihan Keterampilan Membaca Bahasa Seni - dummies

Komponen bacaan Penalaran meskipun Bahasa Seni Bagian pada GED terdiri dari kutipan dari fiksi dan nonfiksi. Setiap kutipan diikuti oleh beberapa item pilihan berdasarkan bahan bacaan. Untuk pertanyaan di bagian ini, pilih satu jawaban terbaik untuk setiap pertanyaan. Bekerja dengan hati-hati, tapi jangan terlalu banyak menghabiskan waktu ...