21 Pertanyaan & Jawaban Wawancara C++ Paling Banyak Dibaca [Untuk Freshers]
Diterbitkan: 2020-12-17Bahkan hari ini, C++ sama populernya seperti di tahun 80-an. Bahasa pemrograman tujuan umum, dikompilasi, dan multi-paradigma (berorientasi objek, prosedural, dan fungsional) ini memainkan peran penting dalam industri TI, khususnya dalam pengembangan perangkat lunak.
Pengembang di seluruh dunia menggunakan C++ untuk membangun perangkat lunak sistem, perangkat lunak basis data, perangkat lunak tertanam, aplikasi perusahaan, aplikasi berbasis GUI, kompiler, komputasi & grafik tingkat lanjut, sistem operasi, browser, game, sistem cloud, dll. Tentu saja, C++ masih sangat relevan bahasa pemrograman.
Dalam posting ini, kami telah membuat daftar 21 pertanyaan wawancara C++ yang harus Anda ketahui jika Anda bercita-cita untuk membangun karir di Pengembangan Perangkat Lunak. Pertanyaan dan jawaban wawancara C++ ini akan membantu Anda memecahkan kebekuan pada subjek!
Pertanyaan & Jawaban Wawancara C++
- Tentukan "Kelas" dan "Objek."
Dalam C++, kelas adalah tipe data yang ditentukan pengguna yang mencerminkan entitas, tindakan, dan fitur yang berbeda. Sebuah kelas berisi anggota data beserta fungsinya. Akses ke anggota dan fungsi data ini ditentukan oleh tiga pengubah – pribadi, publik, dan terlindungi. Sementara kelas mendefinisikan tipe data, mereka hanya menentukan struktur data daripada mendefinisikan data.
Objek adalah turunan dari kelas. Ini adalah entitas run-time yang dapat mewakili orang, tempat, atau sesuatu.
Objek beroperasi pada anggota data dan fungsi anggota. Ini berisi bidang, metode, dan konstruktor. Misalnya, ketika mobil adalah sebuah objek, berbagai fiturnya seperti roda, desain, warna, kurung, dll., adalah turunan dari kelasnya.

- Apa yang dimaksud dengan “Access Specifier?”
Sebuah penentu akses menentukan bagaimana anggota kelas (fungsi dan variabel) dapat diakses di luar ruang lingkup kelas. C++ memiliki tiga jenis penentu akses
- Private – Sebuah specifier pribadi berarti bahwa anggota kelas hanya dapat diakses dalam kelas yang sama di mana mereka dideklarasikan. Dalam hal ini, kelas anak tidak dapat mengakses anggota pribadi dari kelas induk.
- Protected – Sebuah specifier yang dilindungi memungkinkan kelas anak untuk mengakses anggota data yang dilindungi dari kelas induk.
- Publik – Anggota kelas yang dideklarasikan “publik” dapat diakses melalui kode C++.
- Apa itu penentu kelas penyimpanan yang bisa berubah?
Penentu kelas penyimpanan yang dapat diubah hanya berlaku untuk variabel anggota non-statis dan non-konstan kelas untuk mengubah anggota objek kelas konstan dengan mendeklarasikannya.
- Apa itu Enkapsulasi?
Enkapsulasi mengacu pada pembungkus atau pengikatan anggota data dan fungsinya dalam suatu kelas. Proses ini dilakukan untuk alasan keamanan karena membatasi akses dari metode luar apa pun. Jika anggota data bersifat pribadi, hanya fungsi anggotanya yang dapat mengakses data.
- Apa itu Abstraksi?
Abstraksi adalah proses menyembunyikan implementasi internal dan hanya menampilkan detail penting. Akses ke anggota dan fungsi data tergantung pada pengubah yang digunakan. Jadi, jika kata kunci publik digunakan untuk mendefinisikan anggota, mereka dapat diakses oleh siapa saja. Namun, jika kata kunci pribadi mendefinisikan anggota, Anda tidak dapat mengaksesnya melalui metode luar.
- Apa itu Namespace?
Namespace memfasilitasi pembagian logis dari sebuah kode. Ini digunakan dalam program C++ untuk mencegah/menyelesaikan konflik penamaan pengidentifikasi dengan menetapkan ruang nama yang berbeda untuk mereka. Namespace mendefinisikan ruang lingkup di mana pengidentifikasi (variabel, kelas, dan fungsi) dideklarasikan. Jadi, tujuan utama menggunakan namespace adalah untuk menghilangkan ambiguitas dari kode.
- Definisikan "Polimorfisme." Berapa banyak jenis polimorfisme yang ada di C++?
Secara harfiah, polimorfisme berarti adanya banyak bentuk. Dalam C++, polimorfisme terjadi ketika lebih dari satu fungsi ada dengan nama yang sama tetapi dengan fungsionalitas yang bervariasi.
Polimorfisme terdiri dari dua jenis:
- Polimorfisme dinamis, alias “overriding” dalam C++, membantu Anda menentukan metode fungsi mana yang harus dijalankan saat run-time alih-alih waktu kompilasi. Pengabaian fungsi adalah contoh yang sangat baik dari polimorfisme dinamis. Dalam fungsi override, kelas anak berisi metode yang sudah ada di kelas induk. Akibatnya, kelas anak menimpa metode kelas induk. Dalam hal ini, kelas induk dan kelas anak memiliki fungsi yang sama dengan definisi yang berbeda.
- Polimorfisme statis diimplementasikan pada saat kompilasi kode (karenanya, ini juga dikenal sebagai polimorfisme waktu kompilasi). Metode overloading adalah contoh sempurna dari polimorfisme statis. Metode overloading memungkinkan adanya lebih dari satu fungsi yang memiliki nama yang sama tetapi dengan fungsi yang berbeda.
- Jelaskan tujuan dari kata kunci “Volatile”.
Fungsi “volatile” digunakan untuk menyatakan bahwa variabel tertentu bersifat volatile. Ini mengarahkan kompiler untuk mengubah variabel secara eksternal, sehingga menghindari pengoptimalan kompiler pada referensi variabel.
Baca: Pertanyaan & Jawaban Wawancara Java
- Apa itu fungsi Inline?
Fungsi apa pun yang memiliki kata kunci "sebaris" sebagai awalan sebelum definisi fungsi adalah fungsi sebaris. Mereka terutama digunakan untuk mengurangi overhead panggilan fungsi. Saat fungsi sebaris dipanggil, seluruh kode akan dimasukkan atau diganti pada titik tertentu dari pemanggilan fungsi sebaris. Karena kompiler memperlakukan fungsi sebaris sebagai makro, mereka mengeksekusi lebih cepat. Jadi, mendeklarasikan fungsi inline kecil membantu meningkatkan efisiensi kode.

Sintaks standar dari fungsi inline adalah:
Nama fungsi tipe pengembalian sebaris (parameter)
{
// Kode fungsi ada di sini
}
- Apa itu penunjuk "ini"?
Dalam C++, pointer "ini" adalah pointer konstan yang berisi alamat memori dari objek saat ini. Itu diteruskan sebagai argumen tersembunyi ke semua panggilan fungsi anggota non-statis. Juga, pointer ini ada variabel lokal di dalam tubuh semua fungsi non-statis.
Baca : Pertanyaan & Jawaban Wawancara SQL
- Apakah C++ memiliki tipe data primitif string?
C++ tidak dapat memiliki tipe data primitif string, melainkan memiliki kelas dari Standard Template Library (STL).
- Apa fungsi dari operator resolusi ruang lingkup?
Operator resolusi lingkup melayani dua tujuan:
- Ini membantu menyelesaikan ruang lingkup variabel global.
- Ketika suatu fungsi didefinisikan di luar kelas, operator resolusi ruang lingkup mengasosiasikan fungsi itu dengan kelas.
- Apa itu destruktor?
Fungsi anggota dari suatu kelas disebut destruktor. Namanya sama dengan nama kelas tetapi dengan simbol tilde (~) sebagai awalan. Setiap kali suatu objek kehilangan ruang lingkupnya, destruktor dieksekusi secara otomatis.
- Jelaskan perbedaan antara kelas kata kunci dan struktur kata kunci.
Kelas kata kunci mewakili anggota pribadi secara default, sedangkan struct kata kunci menyerupai anggota publik secara default.
- Mendefinisikan fungsi Virtual Murni.
Fungsi virtual murni adalah fungsi yang tidak mengandung definisi apa pun. Anda hanya perlu mendeklarasikan fungsi virtual murni dengan menetapkan 0 dalam deklarasi. Kelas abstrak dalam C++ memiliki setidaknya satu fungsi virtual murni.
Sintaks standar fungsi virtual murni adalah:
kekosongan virtual abc()=0; //fungsi virtual murni.
Lihat: 15 Tips Wawancara untuk Menonjol dalam Wawancara Kerja Anda
- Apa tujuan dari templat kelas?
Templat kelas digunakan untuk membuat keluarga kelas dan fungsi. Misalnya, Anda dapat membuat template kelas array yang memungkinkan Anda membuat array yang mencakup berbagai jenis (int, float, dll.). Anda juga dapat membuat template untuk suatu fungsi. Jadi, jika ada fungsi add(), Anda dapat membuat beberapa versi add().
- Apa yang dimaksud dengan "Kesalahan Meluap"?
Kesalahan overflow adalah kesalahan aritmatika yang terjadi ketika output dari perhitungan matematis lebih besar dari ruang sebenarnya yang diberikan oleh sistem.
- Bagaimana menghapus dan menghapus[ ] berbeda?
Fungsi hapus membebaskan satu unit memori yang dialokasikan menggunakan operator "baru", sedangkan delete[ ] melepaskan larik memori yang dialokasikan dialokasikan oleh operator baru[ ].
- Apa tujuan dari vTable dan vptr di C++? Bagaimana compiler memperlakukan mereka?
Dalam C++, vTable berisi pointer fungsi. Di sisi lain, vptr adalah pointer yang ditugaskan ke vTable. Sementara setiap kelas memiliki vTable, setiap objek memiliki vptr. Kompiler C++ menambahkan kode tambahan di dua tempat untuk menggunakan dan memelihara vTable dan vptr secara efektif:
Di setiap konstruktor untuk mengatur vptr dari objek yang sedang dibuat dan untuk menunjuk ke vTable dari suatu kelas.
Dalam kode memiliki panggilan fungsi polimorfik. Kompilator menyisipkan kode di setiap lokasi di mana panggilan polimorfik dideklarasikan untuk mencari vptr menggunakan penunjuk/referensi kelas dasar. Setelah vptr diperoleh, Anda dapat mengakses vTable dari kelas turunan. Anda dapat menggunakan vTable untuk mengakses dan memanggil fungsi kelas turunan show().

- Di C++, di mana variabel otomatis disimpan?
Semua variabel lokal adalah variabel otomatis secara default dan disimpan dalam memori tumpukan.
- Bagaimana Anda bisa mengekspor fungsi dari DLL?
Ada dua cara untuk mengekspor fungsi dari DLL:
- Anda dapat menggunakan perpustakaan tipe DLL.
- Anda dapat merujuk ke fungsi dari instance DLL.
Mendaftar di Kursus Rekayasa Perangkat Lunak dari Universitas top dunia. Dapatkan Program PG Eksekutif, Program Sertifikat Tingkat Lanjut, atau Program Magister untuk mempercepat karier Anda.
Kesimpulan
Pertanyaan dan jawaban C++ ini adalah beberapa pertanyaan yang paling sering diajukan dalam wawancara kerja. Meskipun kami hanya mencantumkan beberapa pertanyaan, ini akan memberi Anda gambaran yang adil tentang bagaimana mempersiapkan wawancara C++.
Jika Anda tertarik untuk mempelajari lebih lanjut tentang pengembangan perangkat lunak full-stack, lihat Program PG Eksekutif upGrad & IIIT-B dalam Pengembangan Perangkat Lunak Full-stack yang dirancang untuk profesional yang bekerja dan menawarkan 500+ jam pelatihan yang ketat, 9+ proyek dan tugas, status Alumni IIIT-B, proyek batu penjuru praktis & bantuan pekerjaan dengan perusahaan-perusahaan top.
