Bahasa C
Template adalah dasar dari pemrograman generik, yang melibatkan penulisan kode dengan cara yang tidak bergantung pada jenis tertentu.
Template adalah cetak biru atau formula untuk membuat kelas generik atau fungsi. Wadah perpustakaan seperti iterator dan algoritme adalah contoh pemrograman generik dan telah dikembangkan menggunakan konsep template.
Ada satu definisi untuk setiap wadah, seperti vektor , tetapi kita dapat mendefinisikan berbagai jenis vektor misalnya, vektor
Anda dapat menggunakan template untuk mendefinisikan fungsi serta kelas, mari kita lihat cara kerjanya −
Bentuk umum dari definisi fungsi template ditampilkan di sini −
template <class type> ret-type func-name(parameter list) { // body of function }
Di sini, tipe adalah nama placeholder untuk tipe data yang digunakan oleh fungsi. Nama ini dapat digunakan dalam definisi fungsi.
Berikut ini adalah contoh template fungsi yang mengembalikan maksimal dua nilai −
Demo Langsung#include <iostream> #include <string> using namespace std; template <typename T> inline T const& Max (T const& a, T const& b) { return a < b ? b:a; } int main () { int i = 39; int j = 20; cout << "Max(i, j): " << Max(i, j) << endl; double f1 = 13.5; double f2 = 20.7; cout << "Max(f1, f2): " << Max(f1, f2) << endl; string s1 = "Hello"; string s2 = "World"; cout << "Max(s1, s2): " << Max(s1, s2) << endl; return 0; }
Jika kita mengkompilasi dan menjalankan kode di atas, ini akan menghasilkan hasil sebagai berikut
Max(i, j): 39 Max(f1, f2): 20.7 Max(s1, s2): World
Sama seperti kita dapat mendefinisikan template fungsi, kita juga dapat mendefinisikan template kelas. Bentuk umum dari deklarasi kelas generik ditampilkan di sini −
template <class type> class class-name { . . . }
Di sini, ketik adalah nama tipe placeholder, yang akan ditentukan ketika sebuah kelas dipakai. Anda dapat menentukan lebih dari satu tipe data umum dengan menggunakan daftar yang dipisahkan koma.
Berikut adalah contoh untuk mendefinisikan kelas Stack<> dan mengimplementasikan metode umum untuk mendorong dan mengeluarkan elemen dari tumpukan −
Demo Langsung#include <iostream> #include <vector> #include <cstdlib> #include <string> #include <stdexcept> using namespace std; template <class T> class Stack { private: vector<T> elems; // elements public: void push(T const&); // push element void pop(); // pop element T top() const; // return top element bool empty() const { // return true if empty. return elems.empty(); } }; template <class T> void Stack<T>::push (T const& elem) { // append copy of passed element elems.push_back(elem); } template <class T> void Stack<T>::pop () { if (elems.empty()) { throw out_of_range("Stack<>::pop(): empty stack"); } // remove last element elems.pop_back(); } template <class T> T Stack<T>::top () const { if (elems.empty()) { throw out_of_range("Stack<>::top(): empty stack"); } // return copy of last element return elems.back(); } int main() { try { Stack<int> intStack; // stack of ints Stack<string> stringStack; // stack of strings // manipulate int stack intStack.push(7); cout << intStack.top() <<endl; // manipulate string stack stringStack.push("hello"); cout << stringStack.top() << std::endl; stringStack.pop(); stringStack.pop(); } catch (exception const& ex) { cerr << "Exception: " << ex.what() <<endl; return -1; } }
Jika kita mengkompilasi dan menjalankan kode di atas, ini akan menghasilkan hasil sebagai berikut
7 hello Exception: Stack<>::pop(): empty stack
Bahasa C
Petunjuk C++ Dalam tutorial ini, kita akan belajar tentang pointer di C++ dan cara kerjanya dengan bantuan contoh. Dalam C++, pointer adalah variabel yang menyimpan alamat memori dari variabel lain. Alamat di C++ Jika kita memiliki variabel var dalam program kami, &var akan memberi kita alamatnya
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
Penggantian Fungsi C++ Dalam tutorial ini, kita akan belajar tentang fungsi overriding di C++ dengan bantuan contoh. Seperti yang kita ketahui, pewarisan adalah fitur OOP yang memungkinkan kita membuat kelas turunan dari kelas dasar. Kelas turunan mewarisi fitur kelas dasar. Misalkan, fungsi yang
Apa itu std::stack? Stack adalah struktur data yang beroperasi berdasarkan teknik LIFO (Last In First Out). Std::stack memungkinkan elemen ditambahkan dan dihapus dari satu ujung saja. Kelas std::stack adalah adaptor kontainer. Objek kontainer menyimpan data dari tipe data yang serupa. Anda dapat