TM 02 Michael Wijaya 1701293010
Posted March 17th, 2014 by michaelwijaya96TM 02
- Copy constructor suatu klas dieksekusi jika obyek klas di-copy dengan mekanisme di bawah ini kecuali
a. direct assignment b. initialization
c. passing by value c. return by value
- Fungsi anggota yang otomatis di-create oleh kompilator meskipun ia tidak secara eksplisit ditulis oleh pemrogram dalam definisi klas adalah opsi-opsi di bawah ini kecuali
a. default constructor b. copy constructor
c. destructor d. overloaded constructor
- Level akses utility function atau helper function suatu klas adalah
a. public b. protected c. private d. inline
- Untuk class X, sintaks copy constructor adalah
a. X(& X) b. X(const X&)
c. X(const &X) d. X(X &)
- C++ class mempunyai
- satu konstruktor dan satu destructor
- lebih dari satu konstruktor dan satu destructor
- satu konstruktor dan lebih dari satu destructor
- lebih dari satu konstruktor dan lebih dari satu destructor
- Apa keluaran dari penggalan program berikut ini:
class Rational {
public:
Rational() { cout << “OBYEK LAHIR.\n”; }
~Rational() { cout << “OBYEK MATI. \n”; }
private:
int num, den;
};
main() {
{ Rational x;
cout << “SEKARANG x HIDUP.\n”;
}
cout << “ANTAR BLOK.\n”;
{ Rational y;
cout << “SEKARANG y HIDUP.\n”;
}
}
- Uraikan apa yang kamu ketahui tentang constructor, user defined constructor, default constructor, parameterized constructor, constructor initialization list, copy constructor dan destructor.
- Uraikan apa yang kamu ketahui tentang default arguments di C++. Sebutkan apa saja yang dapat digunakan sebagai devalut value. Mengapa nilai constant tidak dapat digunakan sebagai default value untuk reference variable?
- Apa yang dimaksud dengan function overloading? Kriteria apa yang digunakan untuk menyatakan bahwa dua fungsi dengan nama yang sama adalah berbeda satu sama lain.
- Banyak penulis buku menyatakan bahwa untuk class X paling sedikit mempunyai satu constructor yaitu default constructor dengan prototype X(). Tetapi John Hubbard dalam bukunya Programming with C++ menyatakan bahwa setiap class X paling sedikit mempunyai dua constructor yaitu default X() dan copy constructor yang prototipe sintaksnya adalah X (const X & ), fungsi anggota dengan satu parameter dan pass by constant reference.
Tugas Anda:
a. Kapan copy constructor dieksekusi?
b. Untuk penggalan kode berikut berapa kali copy constructor dieksekusi?
class Rational {
public : Rational(int n, int d) : num(n), den (d) { }
Rational(const Rational & r) : num(r.num), den(r.den)
{ cout << “COPY CONSTRUCTOR CALLED\n”;}
private: int num, den;
};
Rational f(Rational r) {
Rational s = r;
return s;
}
main() {
Rational(22,7);
Rational y(x);
f(y);
}
I AM PROUD AS A BINUSIAN
6. OBYEK LAHIR.
SEKARANG x HIDUP
OBYEK MATI
ANTAR BLOK
OBYEK LAHIR
SEKARANG y HIDUP
OBYEK MATI
7. – Constructor adalah fungsi yang muncul ketika kita memanggil suatu class.
– User defined constructor adalah constructor yang dibuat oleh user itu sendiri.
– Default constructor adalah constructor yang sudah disediakan oleh program tersebut dan isinya kosong
– Parameterized constructor adalah constructor yang memiliki parameter.
– Constructor initialization list adalah fasilitas untuk membuat objek dari suatu class dengan sekaligus menyatakan ukuran objek tersebut.
– Copy constructor adalah constructor yang disalin dari constructor sebelumnya.
– Copy destructor adalah destructor yang disalin dari destructor sebelumnya.
8. Default arguments dalam C++ adalah argumentasi terhadap suatu fungsi yang pemrogram tidak perlu untuk menspesifikasinya.
Contoh :
int my_func(int a, int b, int c=12);
result = my_func(1, 2, 3);
result = my_func(1, 2)
Nilai int c yang ada parameter tersebut akan otomatis ada sebagai default argument.
Default value : semua data bisa masuk dalam default value kecuali yang memiliki tipe const.
Karena nilai constant tidak dapat diubah sehingga data yang di kembalikan tidak akan berubah juga dan mengakibatkan kegagalan program.
9. Overloading function memperbolehkan menggunakan nama function yang sama, tetapi dengan kriteria :
- Nama fungsi sama
- Jumlah parameter yang berbeda
- Urutan parameter yang sesuai
10. a. Copy constructor di eksekusi saat kita menyatakan fungsi copy constructor. Atau secara tidak langsung saat kita sedang membutuhkan nya untuk variable lain.
b. Copy constructor di eksekusi sebanyak 1 kali.
Leave a Reply