Bahasa C
Pertimbangkan situasi, ketika kita memiliki dua orang dengan nama yang sama, Zara, di kelas yang sama. Setiap kali kita perlu membedakan mereka pasti kita harus menggunakan beberapa informasi tambahan bersama dengan nama mereka, seperti daerah, jika mereka tinggal di daerah yang berbeda atau nama ibu atau ayah mereka, dll.
Situasi yang sama dapat muncul di aplikasi C++ Anda. Misalnya, Anda mungkin menulis beberapa kode yang memiliki fungsi yang disebut xyz() dan ada perpustakaan lain yang tersedia yang juga memiliki fungsi yang sama xyz(). Sekarang kompilator tidak memiliki cara untuk mengetahui versi fungsi xyz() mana yang Anda maksud di dalam kode Anda.
Sebuah ruang nama dirancang untuk mengatasi kesulitan ini dan digunakan sebagai informasi tambahan untuk membedakan fungsi, kelas, variabel, dll yang serupa dengan nama yang sama tersedia di perpustakaan yang berbeda. Menggunakan namespace, Anda dapat menentukan konteks di mana nama didefinisikan. Intinya, namespace mendefinisikan ruang lingkup.
Definisi namespace dimulai dengan kata kunci namespace diikuti dengan nama namespace sebagai berikut
namespace namespace_name { // code declarations }
Untuk memanggil versi fungsi atau variabel yang mendukung namespace, tambahkan (::) nama namespace sebagai berikut −
name::code; // code could be variable or function.
Mari kita lihat bagaimana ruang lingkup nama entitas termasuk variabel dan fungsi
Demo Langsung#include <iostream> using namespace std; // first name space namespace first_space { void func() { cout << "Inside first_space" << endl; } } // second name space namespace second_space { void func() { cout << "Inside second_space" << endl; } } int main () { // Calls function from first name space. first_space::func(); // Calls function from second name space. second_space::func(); return 0; }
Jika kita mengkompilasi dan menjalankan kode di atas, ini akan menghasilkan hasil sebagai berikut
Inside first_space Inside second_space
Anda juga dapat menghindari penambahan ruang nama dengan menggunakan namespace pengarahan. Arahan ini memberi tahu kompiler bahwa kode berikutnya menggunakan nama di namespace yang ditentukan. Namespace demikian tersirat untuk kode berikut
Demo Langsung#include <iostream> using namespace std; // first name space namespace first_space { void func() { cout << "Inside first_space" << endl; } } // second name space namespace second_space { void func() { cout << "Inside second_space" << endl; } } using namespace first_space; int main () { // This calls function from first name space. func(); return 0; }
Jika kita mengkompilasi dan menjalankan kode di atas, ini akan menghasilkan hasil sebagai berikut
Inside first_space
Arahan 'menggunakan' juga dapat digunakan untuk merujuk ke item tertentu dalam namespace. Misalnya, jika satu-satunya bagian dari ruang nama std yang ingin Anda gunakan adalah cout, Anda dapat merujuknya sebagai berikut −
using std::cout;
Kode berikutnya dapat merujuk ke cout tanpa mengawali namespace, tetapi item lain di std namespace masih perlu eksplisit sebagai berikut
Demo Langsung#include <iostream> using std::cout; int main () { cout << "std::endl is used with std!" << std::endl; return 0; }
Jika kita mengkompilasi dan menjalankan kode di atas, ini akan menghasilkan hasil sebagai berikut
std::endl is used with std!
Nama diperkenalkan dalam menggunakan direktif mematuhi aturan lingkup normal. Nama terlihat dari sudut menggunakan direktif ke akhir lingkup di mana direktif ditemukan. Entitas dengan nama yang sama yang didefinisikan dalam lingkup luar disembunyikan.
Sebuah namespace dapat didefinisikan dalam beberapa bagian dan namespace terdiri dari jumlah bagian-bagian yang didefinisikan secara terpisah. Bagian terpisah dari namespace dapat tersebar di beberapa file.
Jadi, jika salah satu bagian dari namespace memerlukan nama yang didefinisikan di file lain, nama itu harus tetap dideklarasikan. Menulis definisi namespace berikut baik mendefinisikan namespace baru atau menambahkan elemen baru ke yang sudah ada −
namespace namespace_name { // code declarations }
Ruang nama dapat disarangkan di mana Anda dapat mendefinisikan satu ruang nama di dalam ruang nama lain sebagai berikut −
namespace namespace_name1 { // code declarations namespace namespace_name2 { // code declarations } }
Anda dapat mengakses anggota ruang nama bersarang dengan menggunakan operator resolusi sebagai berikut −
// to access members of namespace_name2 using namespace namespace_name1::namespace_name2; // to access members of namespace:name1 using namespace namespace_name1;
Dalam pernyataan di atas jika Anda menggunakan namespace_name1, maka elemen namespace_name2 akan tersedia dalam cakupan sebagai berikut −
Demo Langsung#include <iostream> using namespace std; // first name space namespace first_space { void func() { cout << "Inside first_space" << endl; } // second name space namespace second_space { void func() { cout << "Inside second_space" << endl; } } } using namespace first_space::second_space; int main () { // This calls function from second name space. func(); return 0; }
Jika kita mengkompilasi dan menjalankan kode di atas, ini akan menghasilkan hasil sebagai berikut
Inside second_space
Bahasa C
Rekursi C++ Dalam tutorial ini, kita akan belajar tentang fungsi rekursif di C++ dan cara kerjanya dengan bantuan contoh. Fungsi yang memanggil dirinya sendiri dikenal sebagai fungsi rekursif. Dan, teknik ini dikenal sebagai rekursi. Kerja Rekursi di C++ void recurse() { ... .. ... recurs
Array Multidimensi C++ Dalam tutorial ini, kita akan belajar tentang array multidimensi di C++. Lebih khusus lagi, cara mendeklarasikan, mengakses, dan menggunakannya secara efisien dalam program kami. Dalam C++, kita dapat membuat array dari array, yang dikenal sebagai array multidimensi. Misalnya
Operator C++ Kelebihan Beban Dalam tutorial ini, kita akan belajar tentang overloading operator dengan bantuan contoh. Dalam C++, kita dapat mengubah cara kerja operator untuk tipe yang ditentukan pengguna seperti objek dan struktur. Ini dikenal sebagai kelebihan operator . Misalnya, Misalkan kita
Warisan C++ Dalam tutorial ini, kita akan belajar tentang pewarisan dalam C++ dengan bantuan contoh. Pewarisan adalah salah satu fitur utama pemrograman berorientasi objek di C++. Ini memungkinkan kita untuk membuat kelas baru (kelas turunan) dari kelas yang ada (kelas dasar). Kelas turunan mewari