Bahasa 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 sama didefinisikan di kedua kelas turunan dan kelas berbasis. Sekarang jika kita memanggil fungsi ini menggunakan objek dari kelas turunan, fungsi dari kelas turunan akan dieksekusi.
Ini dikenal sebagai penggantian fungsi dalam C++. Fungsi di kelas turunan menggantikan fungsi di kelas dasar.
// C++ program to demonstrate function overriding
#include <iostream>
using namespace std;
class Base {
public:
void print() {
cout << "Base Function" << endl;
}
};
class Derived : public Base {
public:
void print() {
cout << "Derived Function" << endl;
}
};
int main() {
Derived derived1;
derived1.print();
return 0;
}
Keluaran
Derived Function
Di sini, fungsi yang sama print()
didefinisikan dalam keduanya Base
dan Derived
kelas.
Jadi, ketika kita memanggil print()
dari Derived
objek turunan1 , print()
dari Derived
dijalankan dengan mengganti fungsi di Base
.
Seperti yang kita lihat, fungsi tersebut ditimpa karena kita memanggil fungsi dari objek Derived
kelas.
Seandainya kita memanggil print()
fungsi dari objek Base
kelas, fungsinya tidak akan diganti.
// Call function of Base class
Base base1;
base1.print(); // Output: Base Function
Untuk mengakses fungsi kelas dasar yang diganti, kami menggunakan operator resolusi lingkup ::
.
Kita juga dapat mengakses fungsi yang ditimpa dengan menggunakan pointer dari kelas dasar untuk menunjuk ke objek dari kelas turunan dan kemudian memanggil fungsi dari pointer tersebut.
// C++ program to access overridden function
// in main() using the scope resolution operator ::
#include <iostream>
using namespace std;
class Base {
public:
void print() {
cout << "Base Function" << endl;
}
};
class Derived : public Base {
public:
void print() {
cout << "Derived Function" << endl;
}
};
int main() {
Derived derived1, derived2;
derived1.print();
// access print() function of the Base class
derived2.Base::print();
return 0;
}
Keluaran
Derived Function Base Function
Ini, pernyataan ini
derived2.Base::print();
mengakses print()
fungsi dari kelas Base.
// C++ program to call the overridden function
// from a member function of the derived class
#include <iostream>
using namespace std;
class Base {
public:
void print() {
cout << "Base Function" << endl;
}
};
class Derived : public Base {
public:
void print() {
cout << "Derived Function" << endl;
// call overridden function
Base::print();
}
};
int main() {
Derived derived1;
derived1.print();
return 0;
}
Keluaran
Derived Function Base Function
Dalam program ini, kita telah memanggil fungsi yang ditimpa di dalam Derived
kelas itu sendiri.
class Derived : public Base {
public:
void print() {
cout << "Derived Function" << endl;
Base::print();
}
};
Perhatikan kode Base::print();
, yang memanggil fungsi yang diganti di dalam Derived
kelas.
// C++ program to access overridden function using pointer
// of Base type that points to an object of Derived class
#include <iostream>
using namespace std;
class Base {
public:
void print() {
cout << "Base Function" << endl;
}
};
class Derived : public Base {
public:
void print() {
cout << "Derived Function" << endl;
}
};
int main() {
Derived derived1;
// pointer of Base type that points to derived1
Base* ptr = &derived1;
// call function of Base class using ptr
ptr->print();
return 0;
}
Keluaran
Base Function
Dalam program ini, kami telah membuat pointer Base
ketik bernama ptr . Pointer ini menunjuk ke Derived
objek turunan1 .
// pointer of Base type that points to derived1
Base* ptr = &derived1;
Saat kita memanggil print()
fungsi menggunakan ptr , ia memanggil fungsi yang diganti dari Base
.
// call function of Base class using ptr
ptr->print();
Ini karena meskipun ptr menunjuk ke Derived
objek, sebenarnya dari Base
Tipe. Jadi, ia memanggil fungsi anggota Base
.
Untuk mengganti Base
alih-alih mengaksesnya, kita perlu menggunakan fungsi virtual di Base
kelas.
Bahasa C
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
Fungsi Virtual C++ Dalam tutorial ini, kita akan belajar tentang fungsi virtual C++ dan penggunaannya dengan bantuan contoh. Fungsi virtual adalah fungsi anggota di kelas dasar yang ingin kita definisikan ulang di kelas turunan. Pada dasarnya, fungsi virtual digunakan di kelas dasar untuk memastik
Fungsi C Dalam tutorial ini, Anda akan diperkenalkan dengan fungsi (fungsi perpustakaan yang ditentukan pengguna dan standar) dalam pemrograman C. Selain itu, Anda akan mempelajari mengapa fungsi digunakan dalam pemrograman. Fungsi adalah blok kode yang melakukan tugas tertentu. Misalkan, Anda pe
Apa itu Polimorfisme dalam C++? Dalam C++, polimorfisme menyebabkan fungsi anggota berperilaku berbeda berdasarkan objek yang memanggil/memanggilnya. Polimorfisme adalah kata Yunani yang berarti memiliki banyak bentuk. Itu terjadi ketika Anda memiliki hierarki kelas yang terkait melalui pewarisan.