Di PHP Anda sudah belajar bahwa untuk mengakses elemen suatu kelas yang sudah di-instance (di-‘New’) cukup dengan menggunakan operator panah ‘$a->b’ (link sumber) , di C++ tidak sesederhana itu.

Di C++ ada operator titik / dot (.) , titik dua ganda / double colon (::), dan panah / arrow (->)

Di sini Anda akan belajar memahami apa bedanya ‘a.b’ , ‘a->b, dan ‘a::b’

1. Double colon (a::b)
Digunakan jika ‘a’ adalah suatu nama kelas atau namespace dan ‘b’ adalah member dari ‘a’ . Dalam pemrograman C++ di atas ketika Anda melihat using namespace std :

using namespace std ;
// bla..bla

int main(){
   cout<<"Halo world";
   return 0 ;
}

Sebenarnya ini hanyalah bentuk singkat dari :

// bla..bla

int main(){
   std::cout<<"Halo world";
   return 0 ;
}

2. Dot (a.b)
Operator ini hanya digunakan jika ‘a’ adalah objek aktual (atau reference ke suatu objek) dari kelas ‘a’ , dan ‘b’ adalah anggota dari ‘a’. Ini lebih menyerupai ‘$a->b’ di PHP. Lebih lanjut lihat contoh di bawah.

3. Arrow
Operator ini digunakan untuk pointer, a->b sebenarnya bentuk lain dari (*a).b . Untuk lebih memahami ini, saya sarankan Anda lebih dahulu menguasai mengenai Objek Pointer di C++ , silahkan baca di sini.

Contoh Coding mengguakan (.) , (::), dan (->)
Agar lebih jelas langsung saja praktek, copy paste kode dibawah, compile, dan jalankan. Dan perhatikan baik-baik!

#include <iostream>
#include <string>

using namespace std;

class Human {
private:
    int age;

public:
    string name;

    Human(int humanAge, string humanName) 
         : age(humanAge), name(std::move(humanName)) {}

    void DoSomething() {
        cout << age << endl;
    }

    static void DisplayAge(const Human&amp; person) {
        cout << person.age << endl;
    }

    // ...
};

int main() {
    // Usage of Dot(.) 
    Human firstMan(13, "Jim"); // firstMan is an instance of class Human
    cout << firstMan.name << endl; // accessing member attributes
    firstMan.DoSomething(); // accessing member functions

    // Usage of Pointer Operator (->)
    Human* secondMan = new Human(24, "Tom");
    cout << secondMan->name << endl; // accessing member attributes
    cout << (*secondMan).name << endl; // SAME ABOVE, accessing member attributes
    secondMan->DoSomething(); // accessing member functions
    (*secondMan).DoSomething(); // SAME ABOVE, accessing member functions

    // Usage of Double Colon (::)
    Human::DisplayAge(firstMan);
    firstMan.DisplayAge(firstMan); // ok but not recommended
    secondMan->DisplayAge(firstMan); // ok but not recommended

    delete(secondMan);

    return 0;
}

 

BACA JUGA:  Bahasa Pemrogramman Tingkat Rendah dan Tingkat Tinggi
Last modified: October 26, 2020

Author

Comments

Write a Reply or Comment

Your email address will not be published.