Class C++ Dasar, edisi 2

Class C++ Dasar



edisi 2

Constructor 
C() adalah anggota class yang bertugas melakukan inisialisasi obyek (instance) dari suatu class C. Implementasi dari berbagai tipe constructor di C++. Constructor klasik masih tersedia di C++ , tapi di constructor tersebut masih newarkan beberapa tambahan yang memungkinkan untuk memendekkan kode dan menggunakan sedikit constructor.



Constructor mempunyai nama yang sama dengan nama class, dan tidak mempunyai return value. Sebuah class dapat mempunyai lebih dari satu constructor. Constructor yang tidak mempunyai argumen, disebut default constructor, sebaliknya constructor yang mempunyai lebih dari satu argumen adalah non-default constructor. Constructor dengan satu default argument tetap merupakan sebuah default constructor.


   class C
    {
       public:
       C(int count=10) : _count(count) {}
       …
       private:
       int _count;
    };

Compiler C++ dapat menambahkan default constructor bilamana diperlukan, jika dalam definisi class :
  • tidak tertulis secara eksplisit sebuah default constructor dan tidak ada deklarasi constructor lain (copy constructor).
  • tidak ada anggota class berupa data const maupun reference.
    Sebagai contoh definisi class C sebagai berikut,

   class C {…};
   C c1; // memerlukan default constructor
   C c2(c1); // memerlukan copy constructor


Compiler C++ memutuskan untuk menambahkan default dan copy construtor setelah menemui kedua baris program tersebut, sehingga definisi class secara efektif menjadi sebagai berikut,
   class C
    {
     public:
     C(); // default costructor
     C(const C& rhs); // copy constructor
     ~C(); // destructor

         C& operator=(const C& rhs); // assignment operator
     C* operator&(); // address-of operator
     const C* operator&(const C& rhs) const;
    };


Pada umumnya default constructor bentukan compiler (generated default constructor) menggunakan default constructor anggota bertipe class, sedangkan anggota biasa (built-in type) tidak diinisialisasi. Demikian halnya dengan obyek yang dibentuk dari obyek lain (copy), maka copy constructor bentukan compiler (generated copy constructor) menggunakan copy constructor dari anggota bertipe class pada saat inisialisasi. Sebagai contoh deklarasi class C berikut ini :

   class C
   {
     public:
     C(const char* aName);
     C(const string& aName);
     …
     private:
     std::string name;
   };


Constructor dengan satu argumen berfungsi juga sebagai implicit conversion operator. Sebagai contoh deklarasi class A dan B berikut ini :

   class A
    {
      public:
      A();
    };
   class B
    {
      public:
      B(const A&);
    };

sumber : IlmuKomputer.com



Class C++ Dasar, edisi 2 Class C++ Dasar, edisi 2 Reviewed by Ardy S on February 09, 2013 Rating: 5

No comments:

Powered by Blogger.