Advertisement
asrori

headerKonversi

Mar 28th, 2018
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.26 KB | None | 0 0
  1. /* inline dan friend function/class merupakan salah satu fitur tambahan yang ada di C++
  2.  * tetapi penggunaannya harus diperhatikan karena tidak semua perintah bisa dimasukkan kedalamnya
  3.  * saya sarankan tidak menggunakan fungsi recursive didalam class, walaupun dimungkinkan, alasannya karena bisa saja sewaktu waktu
  4.  * dapat menyebabkan memory overflow yang nantinya akan susah ditrace errornya saat runtime.
  5.  * sangat sulit karena setiap kali menginisialisasi suatu objek maka objek tersebut akan secara otomatis ditempatkan di heap memory,
  6.  * caranya hampir sama dengan cara kerja malloc mengalokasikan dynamic memory terhadap sebuah data.
  7.  * sebaiknya gunakan fungsi didalam class secara semestinya yaitu untuk operasi pengolahan data saja.
  8.  *
  9.  * friend function/class ini sebenarnya mengingkari salah satu konsep OOP yang sangat menjaga ke ekslusifan sebuah data di dalam class,
  10.  * objek seharusnya independen.
  11.  * friend function/class dapat mengambil nilai dari data member dari sebuah class lain walaupun itu akses modifiernya private
  12.  * bahkan protected.
  13.  * 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.
  14.  * jika perlu ditambahkan validasi saat di main programnya.
  15. */
  16.  
  17. #ifndef PRAKTIKUM5_OOP_KONVERSI_H
  18. #define PRAKTIKUM5_OOP_KONVERSI_H
  19.  
  20. #include <iostream>
  21.  
  22. using namespace std;
  23.  
  24. class Konversi{
  25.     private:
  26.         int angka;
  27.         int batas;
  28.         double hasil;
  29.  
  30.     public:
  31.         Konversi(){
  32.             this->batas = 20;
  33.         }
  34.  
  35.         void setAngka(int angka){
  36.             this->angka = angka;
  37.         }
  38.  
  39.         int getAngka() const { //const function
  40.             return this->angka;
  41.         }
  42.  
  43.         void setHasil(double hasil){
  44.             this->hasil = hasil;
  45.         }
  46.  
  47.         double getHasil() const { //const function
  48.             return this->hasil;
  49.         }
  50.  
  51.         //function member & friend function
  52.         void lihatHasil();
  53.         friend int lihatBatas(Konversi);
  54. };
  55.  
  56. //inline function implementation
  57. inline void Konversi :: lihatHasil() {
  58.     cout << "hasil dari " << getAngka() << " faktorial adalah " << getHasil() << endl;
  59. }
  60.  
  61. //friend function implementation
  62. int lihatBatas(Konversi k){
  63.     return k.batas;
  64. }
  65.  
  66. #endif
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement