Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* inline dan friend function/class merupakan salah satu fitur tambahan yang ada di C++
- * tetapi penggunaannya harus diperhatikan karena tidak semua perintah bisa dimasukkan kedalamnya
- * saya sarankan tidak menggunakan fungsi recursive didalam class, walaupun dimungkinkan, alasannya karena bisa saja sewaktu waktu
- * dapat menyebabkan memory overflow yang nantinya akan susah ditrace errornya saat runtime.
- * sangat sulit karena setiap kali menginisialisasi suatu objek maka objek tersebut akan secara otomatis ditempatkan di heap memory,
- * caranya hampir sama dengan cara kerja malloc mengalokasikan dynamic memory terhadap sebuah data.
- * sebaiknya gunakan fungsi didalam class secara semestinya yaitu untuk operasi pengolahan data saja.
- *
- * friend function/class ini sebenarnya mengingkari salah satu konsep OOP yang sangat menjaga ke ekslusifan sebuah data di dalam class,
- * objek seharusnya independen.
- * friend function/class dapat mengambil nilai dari data member dari sebuah class lain walaupun itu akses modifiernya private
- * bahkan protected.
- * jika class 1 ingin mengambil data dari class 2 maka di main programnya ada get data dari class 1 lalu valuenya di set ke class 2.
- * jika perlu ditambahkan validasi saat di main programnya.
- */
- #ifndef PRAKTIKUM5_OOP_KONVERSI_H
- #define PRAKTIKUM5_OOP_KONVERSI_H
- #include <iostream>
- using namespace std;
- class Konversi{
- private:
- int angka;
- int batas;
- double hasil;
- public:
- Konversi(){
- this->batas = 20;
- }
- void setAngka(int angka){
- this->angka = angka;
- }
- int getAngka() const { //const function
- return this->angka;
- }
- void setHasil(double hasil){
- this->hasil = hasil;
- }
- double getHasil() const { //const function
- return this->hasil;
- }
- //function member & friend function
- void lihatHasil();
- friend int lihatBatas(Konversi);
- };
- //inline function implementation
- inline void Konversi :: lihatHasil() {
- cout << "hasil dari " << getAngka() << " faktorial adalah " << getHasil() << endl;
- }
- //friend function implementation
- int lihatBatas(Konversi k){
- return k.batas;
- }
- #endif
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement